Java 整数转换为字符串函数分析 - sub_12640
Java 整数转换为字符串函数分析 - sub_12640
函数 int __fastcall sub_12640(int a1, int a2, int a3, int a4) 的作用是将整数转换为字符串并返回。
函数实现步骤:
- 获取 'java/lang/Integer' 类的引用。
- 调用该类的构造函数,创建一个整数对象。
- 调用
sub_125FC函数,将整数对象转换成字符串。 - 调用 'toString' 方法,获取该整数对象的字符串表示。
- 调用
sub_1261C函数,将字符串转换成 Java 字符串对象并返回。
代码解析:
int __fastcall sub_12640(int a1, int a2, int a3, int a4)
{
int v6; // r5
int v7; // r0
int v8; // r7
int v9; // r0
v6 = (*(int(__fastcall**)(int, const char*))(*(_DWORD*)a1 + 0x18))(a1, 'java/lang/Integer');
v7 = (*(int(__fastcall**)(int, int, const char*, const char*))(*(_DWORD*)a1 + 0x84))(a1, v6, '<init>', '(I)V');
v8 = sub_125FC(a1, v6, v7, a2);
v9 = (*(int(__fastcall**)(int, int, const char*, const char*))(*(_DWORD*)a1 + 0x84))(a1, v6, 'toString', '()Ljava/lang/String;');
return sub_1261C(a1, v8, v9, a4);
}
解释:
v6 = (*(int(__fastcall**)(int, const char*))(*(_DWORD*)a1 + 0x18))(a1, 'java/lang/Integer');:获取 'java/lang/Integer' 类的引用并存入v6变量。v7 = (*(int(__fastcall**)(int, int, const char*, const char*))(*(_DWORD*)a1 + 0x84))(a1, v6, '<init>', '(I)V');:调用Integer类的构造函数,创建整数对象,并将对象引用存入v7变量。v8 = sub_125FC(a1, v6, v7, a2);:调用sub_125FC函数,将整数对象转换成字符串,并将字符串存入v8变量。v9 = (*(int(__fastcall**)(int, int, const char*, const char*))(*(_DWORD*)a1 + 0x84))(a1, v6, 'toString', '()Ljava/lang/String;');:调用 'toString' 方法,获取该整数对象的字符串表示,并将字符串存入v9变量。return sub_1261C(a1, v8, v9, a4);:调用sub_1261C函数,将字符串转换成 Java 字符串对象并返回。
总结:
函数 sub_12640 利用 Java 的 Integer 类和 toString 方法,实现了将整数转换为字符串的功能。通过调用 sub_125FC 和 sub_1261C 函数,完成了不同类型字符串的转换。
原文地址: https://www.cveoy.top/t/topic/mmT6 著作权归作者所有。请勿转载和采集!