|
5精币
本人小白,网上很多教程,ida动态调试均不成功。有没有懂汇编的,能够解析一下这一小段参数。
已知传入参数为:
YmR1c3M9amRyVWxCWFZ6RmxOaTFtVFRCeFRGUTNUVzVsZm41WWQzbGhNbWx6ZURacFFsWm9WblJ0TUhCSWJraGtiMXBpUVZGQlFVRkJKQ1FBQUFBQUFBQUFBQUVBQUFDZXF5flVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWZwWGx2SDZWNWJiY2hhbm5lbD1hc3Nob3VmYWN1aWQ9NUNCNzVBMUQxRkJGODFBODQ0NDc5RUYzMDBDQ0ExNDN8MjYwOTYxNzIwNjYxNTY4ZGlnRmxhZz0xdG9rZW49MV84NjNkMjI2NDFkMGEzNjA1YzkzNjNjODcyNDQxYTdkNHZjPTI0MQ==
传出参数为:
d85a99d8391668a6b962dfc8fdd6bc35
IDA->F5后:
int __fastcall Java_com_baidu_box_common_net_core_AntiSpam_nativeGetSign(_DWORD *a1, int a2, int a3)
{
int v3; // r6
_DWORD *v4; // r4
int v5; // r0
int v6; // r5
char *v7; // r0
char *v8; // r6
int v9; // r0
int v10; // r4
int (__fastcall *v11)(_DWORD *, const char *); // r2
void *v13; // [sp+0h] [bp-10h]
v3 = a3;
v4 = a1;
if ( !initState )
goto LABEL_11;
v5 = *a1;
if ( !dword_A0E4 )
{
v11 = *(int (__fastcall **)(_DWORD *, const char *))(v5 + 668);
return v11(v4, "error");
}
v6 = (*(int (__fastcall **)(_DWORD *, int, _DWORD))(v5 + 676))(v4, a3, 0);
v13 = (void *)j_constCharToChar();
(*(void (__fastcall **)(_DWORD *, int, int))(*v4 + 680))(v4, v3, v6);
if ( !v13 )
{
LABEL_11:
v11 = *(int (__fastcall **)(_DWORD *, const char *))(*v4 + 668);
return v11(v4, "error");
}
v7 = (char *)j_CRYStringCat("[%s]@%s", dword_A0E4, v13, 0);
v8 = v7;
v9 = j_CRYMd5(v7);
v10 = (*(int (__fastcall **)(_DWORD *, int))(*v4 + 668))(v4, v9);
free(v8);
free(v13);
return v10;
}
IDA全部版图为:
想知道他们经历了什么变化
|
最佳答案
查看完整内容
你发的图,一张也看不到,只能看到你发的文字。从你发的伪C代码来看,先检查了,initState ,initState ,再按这样的格式拼装,"[%s]@%s", dword_A0E4, v13,最后进入了j_CRYMd5函数。
|