我需要帮助来了解此功能(sub_59E1F0),这是该功能本身:
sub_59E1F0 proc near
var_50C= dword ptr -50Ch
var_508= dword ptr -508h
var_504= dword ptr -504h
var_500= dword ptr -500h
var_4FC= dword ptr -4FCh
var_4F8= dword ptr -4F8h
var_4F4= dword ptr -4F4h
var_4F0= dword ptr -4F0h
var_4EC= dword ptr -4ECh
var_4E8= dword ptr -4E8h
var_4E4= dword ptr -4E4h
var_4E0= dword ptr -4E0h
var_4CD= byte ptr -4CDh
var_224= dword ptr -224h
var_21B= byte ptr -21Bh
var_1F4= dword ptr -1F4h
var_1C4= dword ptr -1C4h
alpha= dword ptr -18Ch
var_128= dword ptr -128h
var_124= dword ptr -124h
var_120= dword ptr -120h
var_C= dword ptr -0Ch
var_4= dword ptr -4
arg_0= dword ptr 4
arg_4= dword ptr 8
arg_8= dword ptr 0Ch
arg_C= dword ptr 10h
arg_10= dword ptr 14h
arg_14= dword ptr 18h
arg_18= byte ptr 1Ch
push 0FFFFFFFFh
push offset loc_876A22
mov eax, large fs:0
push eax
mov large fs:0, esp
sub esp, 500h
mov eax, [esp+50Ch+arg_10]
push ebx
push ebp
mov ebp, [esp+514h+arg_4]
fld dword ptr [eax]
fsub flt_809F104
push esi
push edi
mov edi, ebp
xor ebx, ebx
sar edi, 3
fstp [esp+51Ch+var_4F8]
fld dword ptr [eax+4]
fsub flt_809F108
and edi, 0Fh
fstp [esp+51Ch+var_4F4]
fld dword ptr [eax+8]
fsub flt_809F10C
cmp [esp+51Ch+arg_18], bl
fstp [esp+51Ch+var_4F0]
jz short loc_59E267
然后,这是对函数的调用:
mov edx, [esp+1Ch+var_10]
mov ecx, [esp+1Ch+arg_1C]
and edx, 0FFh
push ebx
lea eax, [esp+20h+var_C]
push edx
mov edx, [esp+24h+arg_18]
push eax
push ecx
push edx
push edi
push 23B5h
call sub_59E1F0
add esp, 1Ch
pop edi
pop esi
pop ebx
add esp, 10h
retn
我在ASM,调试或逆向工程方面很糟糕。但是据我了解,该函数中应该有7个参数,其中6个是DWORD(所以是某种数字),而一个是BYTE所以我认为可能是布尔值。
所以我尝试使用类似的函数,例如function(int,int,int,int,int,int,bool)或将int替换为DWORDS或全部替换为DWORDS,但是它不起作用(应用程序崩溃)
所以我现在试图挂断电话,以查看实际发送的内容。但是我似乎也无法捕获到正确数量的数据。
(显然)我不是专家,但是在调用该函数的示例中我可以看到只有4个参数,或者也许只有2个?也许2个数组? (由于var_10,arg_1C,var_C和arg_18)。
你们能帮助我了解我在这里看什么吗? :)
编辑:这是IDA图表的下一步:
lea eax, [esp+51Ch+var_508]
lea ecx, [esp+51Ch+var_4F8]
push eax
push ecx
push 3D8F5C29h
jmp short loc_59E276
//
loc_59E267:
lea edx, [esp+51Ch+var_508]
lea eax, [esp+51Ch+var_4F8]
push edx
push eax
push 3DCCCCCDh
//
loc_59E276:
push offset flt_809F104
call sub_6BC5EE
mov esi, [esp+52Ch+arg_0]
mov ecx, [esp+52Ch+arg_14]
add esp, 10h
cmp esi, 342h
jnz short loc_59E2D8