text:08058150 ; =============== S U B R O U T I N E =======================================
.text:08058150
.text:08058150
.text:08058150 ; _DWORD __cdecl uk_GetProductID(char *)
.text:08058150 public _Z15uk_GetProductIDPc
.text:08058150 _Z15uk_GetProductIDPc proc near ; CODE XREF: uk_IsUsbKeyValid(uint,char *)+7↓p
.text:08058150 ; uk_Register(char *,char *,uint,char *)+66↓p
.text:08058150
.text:08058150 var_2C = dword ptr -2Ch
.text:08058150 var_10 = dword ptr -10h
.text:08058150 arg_0 = dword ptr 4
.text:08058150
.text:08058150 ; __unwind {
.text:08058150 push ebx
.text:08058151 sub esp, 24h
.text:08058154 push 3 ; unsigned int
.text:08058156 call __Znaj ; operator new[](uint)
.text:0805815B add esp, 0Ch
.text:0805815E xor edx, edx
.text:08058160 mov byte ptr [eax+2], 0
.text:08058164 mov [eax], dx
.text:08058167 push [esp+20h+arg_0] ; char *
.text:0805816B mov ebx, eax
.text:0805816D push offset aAaaaaaaa ; "AAAAAAAA"
.text:08058172 push offset aAaaaaaaa ; "AAAAAAAA"
.text:08058177 push 2 ; int
.text:08058179 push 0 ; __int16
.text:0805817B push eax ; char *
.text:0805817C push offset mD8 ; this
.text:08058181 call _ZN2D811YReadStringEPcsiS0_S0_S0_ ; D8::YReadString(char *,short,int,char *,char *,char *)
.text:08058186 add esp, 20h
.text:08058189 test eax, eax
.text:0805818B jz short _text_80581C0
.text:0805818D sub esp, 0Ch
.text:08058190 push eax
.text:08058191 push 2
.text:08058193 push 0
.text:08058195 push offset aFailedToReadSt ; "Failed to read string from USB KEY. Add"...
.text:0805819A push 1
.text:0805819C call ___printf_chk
.text:080581A1 add esp, 14h
.text:080581A4 push ebx ; void *
.text:080581A5 call __ZdaPv ; operator delete[](void *)
.text:080581AA add esp, 10h
.text:080581AD mov eax, 0FFFFFFFEh
通过 D8::YReadString(char *,short,int,char *,char *,char *) ,明显看出是 东莞域天的狗,而且读写密码 也在上面了。 |