ida pro so文件f5后伪c后的 jni函数优化
自己写的原创工具生成的伪c代码进行处理以下是部分结果的例子
int __fastcall Java_com_esun_util_libc_JNINativeInterface_getRewardOptimizeResult(int a1, int a2, int a3, int a4, int a5, int a6)
{
int v6; // r4@1
int v7; // ST10_4@1
int v8; // r7@1
int v9; // r0@1
int v10; // r1@1
int v11; // ST1C_4@1
int result; // r0@1
char s; // [sp+24h] [bp-1001Ch]@1
int v14; // [sp+10024h] [bp-1Ch]@1
v14 = _stack_chk_guard;
v6 = a1;
v7 = (*(int (**)(void))(*(_DWORD *)a1 + 676))();
//原始代码 v8 = (*(int (__fastcall **)(int))(*(_DWORD *)v6 + 676))(v6);
v8 = (*v6)->GetStringUTFChars(v6);
memset(&s, 0, 0x10000u);
v9 = _floatsidf(a5);
v11 = api_prize_optimizer(v7, v8, v9, v10, a6, &s);
_android_log_print(
3,
&unk_7EB8,
"____getRewardOptimizeResult get matchlist:%s ___touzhulist:%s___money:%d___type:%d",
v7);
_android_log_print(3, &unk_7EB8, "____getRewardOptimizeResult result status: %d ______result: %s", v11);
//原始代码 (*(void (__fastcall **)(int))(*(_DWORD *)v6 + 680))(v6);
(*v6)->ReleaseStringUTFChars(v6);
//原始代码 (*(void (__fastcall **)(int))(*(_DWORD *)v6 + 680))(v6);
(*v6)->ReleaseStringUTFChars(v6);
//原始代码 result = (*(int (__fastcall **)(int, char *))(*(_DWORD *)v6 + 668))(v6, &s);
result = (*v6)->NewStringUTF((JNIEnv *)v6, &s);
if ( v14 != _stack_chk_guard )
_stack_chk_fail(result);
return result;
}
大老的网站
大老的qq:79234668