Yes. The trick is to use not just categories, but *pointed categories*, which are categories equipped with a choice of object (the "pointing"). Given any ring $R$, the category $\mathrm{Mod}(R)$ is naturally pointed by the rank-1 free module, i.e. $R$-as-an-$R$-module, which I will write as $R_R$. Then it is almost trivial that the pointed category $(\mathrm{Mod}(R),R_R)$, up to equivalence, recovers $R$ up to isomorphism.

What's that? I didn't tell you what the morphisms are between pointed categories, so you don't what the equivalences are? Well, you do actually know what the equivalences are: an equivalence of pointed categories $(\mathcal{C},C) \simeq (\mathcal{D},D)$ is an equivalence of categories $F : \mathcal{C} \overset\sim\to \mathcal{D}$ together with an isomorphism $f : FC \cong D$. I mean, what else could it be? Anything else wouldn't justify the name. But there is actually an interesting question of what are the morphisms which are not equivalences. Surely, a morphism $(\mathcal{C},C) \to (\mathcal{D},D)$ should consist of a functor $F : \mathcal{C} \to \mathcal{D}$ together with a morphism $f$ between $FC$ and $D$. The interesting question is whether $f$ should be: (1) an isomorphism; (2) a morphism $f : FC \to D$; (3) a morphism $f : D \to FC$. These three options have names: (1) is called a *strong pointed functor*; (2) is called an *oplax pointed functor*; and (3) is called a *lax pointed functor*. It is almost trivial to show that all three options give the same notion of *equivalence* of pointed categories, but they give different bicategories of pointed categories (and this difference matters in applications).

An advantage of working with pointed categories is that there are plenty of pointed categories which share with $(\mathrm{Mod}(R), R_R)$ some of its nice structural properties, but not all, and so are not of that form.