TA的每日心情 | 难过 2016-6-15 22:46 |
---|
签到天数: 6 天 [LV.2]偶尔看看I
|
代码如下:
CPU Disasm
地址 十六进制数据 汇编代码 注释
1000513F 90 nop ; EBX EBP的值是判断授权类型,确认序列号是否匹配,重点研究
10005140 /$ 81EC 880C00 sub esp,0C88 ; crp32dll.ExplainErr(guessed Arg1,Arg2)
10005146 |. 53 push ebx
10005147 |. 8B9C24 940C mov ebx,dword ptr [esp+0C94] ; 12F0DC传值过来FFFFFFFB=-1
1000514E |. 55 push ebp
1000514F |. 8BAC24 940C mov ebp,dword ptr [esp+0C94] ; 12F0D8传值过来FFFFFFFB=3
10005156 |. 56 push esi
10005157 |. 57 push edi
10005158 |. 53 push ebx ; /<%d> => [Arg2]
10005159 |. 55 push ebp ; |<%d> => [Arg1]
1000515A |. 68 7C660110 push offset 1001667C ; |Format = ">>ExplainErr(%d, %d)
"
1000515F |. E8 4CF2FFFF call 100043B0 ; \crp32dll.100043B0, 不用跟,只有返回语名
10005164 |. 83C4 0C add esp,0C
10005167 |. 85DB test ebx,ebx ; EBX=-1
10005169 |. 7D 0A jge short 10005175 ; 高于等于,或者进位标志转移清零跳转
1000516B |. 8BC3 mov eax,ebx
1000516D |. F7D8 neg eax ; =0-EBX
1000516F |. 894424 10 mov dword ptr [esp+10],eax ; ESP+10=12EBEC
10005173 |. EB 04 jmp short 10005179
10005175 |> 895C24 10 mov dword ptr [esp+10],ebx
10005179 |> 83FD 08 cmp ebp,8
1000517C |. 0F85 840000 jne 10005206 ; 下面EBX EBP的值是判断授权类型
10005182 |. 83FB E5 cmp ebx,-1B ; Cascaded IF (例 FFFFFFE4..FFFFFFE53 退出)
10005185 |. 75 3D jne short 100051C4
10005187 |. 68 50660110 push offset 10016650 ; /Format = "The requested License Server was not found", case FFFFFFE5 of cascaded IF crp32dll.10005182
1000518C |. 68 14890110 push offset 10018914 ; |Arg1 = ASCII "PROGRAM MOVED OR SITEKEY BAD PASSWORD"
10005191 |. E8 711C0000 call 10006E07 ; \crp32dll.10006E07
10005196 |. 68 40660110 push offset 10016640 ; /Format = "<<ExplainErr("
1000519B |. E8 10F2FFFF call 100043B0 ; \crp32dll.100043B0
100051A0 |. 68 14890110 push offset 10018914 ; /<%s> = "PROGRAM MOVED OR SITEKEY BAD PASSWORD"
100051A5 |. 68 0C650110 push offset 1001650C ; |Format = ""%s")
"
100051AA |. E8 01F2FFFF call 100043B0 ; \crp32dll.100043B0
100051AF |. 83C4 14 add esp,14
100051B2 |. B8 14890110 mov eax,offset 10018914 ; ASCII "PROGRAM MOVED OR SITEKEY BAD PASSWORD"
100051B7 |. 5F pop edi
100051B8 |. 5E pop esi
100051B9 |. 5D pop ebp
100051BA |. 5B pop ebx
100051BB |. 81C4 880C00 add esp,0C88
100051C1 |. C2 0800 retn 8
在地址
1000515F |. E8 4CF2FFFF call 100043B0
这个调用只有一个返回 RETN,不知什么作用,百思不得其解?
在地址
10005167 |. 85DB test ebx,ebx ; EBX=-1
10005169 |. 7D 0A jge short 10005175 ; 高于等于,或者进位标志转移清零跳转
10005167 只影响Z标志,怎么会控制JGE的跳转呢?
本人菜鸟一个,请高手帮指点
|
|