首页
社区
课程
招聘
[求助]有狗时条件值为真,否则为假.我却看不懂,请高手注解
发表于: 2005-10-10 17:33 3783

[求助]有狗时条件值为真,否则为假.我却看不懂,请高手注解

2005-10-10 17:33
3783
02791D70     55                  push ebp
02791D71     8BEC                mov ebp,esp
02791D73     81EC F8010000       sub esp,1F8
02791D79     A1 A0EF7A02         mov eax,dword ptr ds:[27AEFA0]
02791D7E     85C0                test eax,eax
02791D80     0F85 AA000000       jnz gwliilx.02791E30                                ;
02791D86     56                  push esi
02791D87     C745 FC FFFFFFFF    mov dword ptr ss:[ebp-4],-1
02791D8E     E8 5DFFFFFF         call gwliilx.02791CF0
02791D93     A1 8CEF7A02         mov eax,dword ptr ds:[27AEF8C]
02791D98     8D8D 08FEFFFF       lea ecx,dword ptr ss:[ebp-1F8]
02791D9E     50                  push eax
02791D9F     68 B0E17A02         push gwliilx.027AE1B0                               ; ASCII "%sLzi.tmu"
02791DA4     51                  push ecx
02791DA5     FF15 BCD17A02       call dword ptr ds:[<&MSVCRT.sprintf>]                ; MSVCRT.sprintf
02791DAB     8D95 08FEFFFF       lea edx,dword ptr ss:[ebp-1F8]
02791DB1     68 ACE17A02         push gwliilx.027AE1AC                               ; ASCII "rt"
02791DB6     52                  push edx
02791DB7     FF15 B0D17A02       call dword ptr ds:[<&MSVCRT.fopen>]                  ; MSVCRT.fopen
02791DBD     8BF0                mov esi,eax
02791DBF     83C4 14             add esp,14
02791DC2     85F6                test esi,esi
02791DC4     74 1A               je short gwliilx.02791DE0                           ; 不跳
02791DC6     8D45 FC             lea eax,dword ptr ss:[ebp-4]
02791DC9     50                  push eax
02791DCA     68 A8E17A02         push gwliilx.027AE1A8                               ; ASCII "%d
"
02791DCF     56                  push esi
02791DD0     FF15 B4D17A02       call dword ptr ds:[<&MSVCRT.fscanf>]                 ; MSVCRT.fscanf
02791DD6     56                  push esi
02791DD7     FF15 B8D17A02       call dword ptr ds:[<&MSVCRT.fclose>]                 ; MSVCRT.fclose
02791DDD     83C4 10             add esp,10
02791DE0     8B45 FC             mov eax,dword ptr ss:[ebp-4]                         ; eax=0
02791DE3     5E                  pop esi
02791DE4     83F8 01             cmp eax,1                                            ; eax=1
02791DE7     75 15               jnz short gwliilx.02791DFE                          ; 不跳
02791DE9     E8 F2F2FFFF         call gwliilx.027910E0
02791DEE     85C0                test eax,eax                                         ; eax=1
02791DF0     74 3E               je short gwliilx.02791E30                           ; 不跳
02791DF2     C705 9CEF7A02 01000>mov dword ptr ds:[27AEF9C],1
02791DFC     EB 32               jmp short gwliilx.02791E30
02791DFE     83F8 02             cmp eax,2
02791E01     75 15               jnz short gwliilx.02791E18
02791E03     E8 C8F6FFFF         call gwliilx.027914D0
02791E08     85C0                test eax,eax
02791E0A     74 24               je short gwliilx.02791E30
02791E0C     C705 9CEF7A02 02000>mov dword ptr ds:[27AEF9C],2
02791E16     EB 18               jmp short gwliilx.02791E30
02791E18     83F8 03             cmp eax,3
02791E1B     75 13               jnz short gwliilx.02791E30
02791E1D     E8 9EFAFFFF         call gwliilx.027918C0
02791E22     85C0                test eax,eax
02791E24     74 0A               je short gwliilx.02791E30
02791E26     C705 9CEF7A02 03000>mov dword ptr ds:[27AEF9C],3
02791E30     A1 A0EF7A02         mov eax,dword ptr ds:[27AEFA0]
02791E35     40                  inc eax
02791E36     83F8 14             cmp eax,14                                           ; eax=1
02791E39     A3 A0EF7A02         mov dword ptr ds:[27AEFA0],eax                       ; ds:[027aefa0]=00000000
02791E3E     7E 0A               jle short gwliilx.02791E4A                          ; y
02791E40     C705 A0EF7A02 00000>mov dword ptr ds:[27AEFA0],0
02791E4A     8B0D 9CEF7A02       mov ecx,dword ptr ds:[27AEF9C]
02791E50     33C0                xor eax,eax
02791E52     85C9                test ecx,ecx                                         ; ecx=1
02791E54     0F95C0              setne al                                             ; al=0 条件值为真(有狗时)
02791E57     8BE5                mov esp,ebp
02791E59     5D                  pop ebp                                              ; ebp=01a6f424
02791E5A     C3                  retn

有狗时al=0 条件值为真
无狗时al=0 条件值为假


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 703
活跃值: (327)
能力值: (RANK:380 )
在线值:
发帖
回帖
粉丝
2
多看看软件狗的开发手册就知道了 这种问题太敏感
还是多自己研究吧
ps:很多狗检查狗都是返回0有狗 还没到数据的判断呢 慢慢走
2005-10-11 10:10
0
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3
02791DE9     E8 F2F2FFFF         call gwliilx.027910E0

02791E03     E8 C8F6FFFF         call gwliilx.027914D0

02791E1D     E8 9EFAFFFF         call gwliilx.027918C0

注意看每个调用之后事EAX为0则会跳。到 XXXXX30 处开始判断回值。

请注意看看这3处,应该是读狗等的操作吧。我不知道你的分析到的程度,
只是这3个调用之后会将
02791E40     C705 A0EF7A02 00000>mov dword ptr ds:[27AEFA0],0
02791E4A     8B0D 9CEF7A02       mov ecx,dword ptr ds:[27AEF9C]
有一个相应的置值的部分。所以细心一下,看看具体的功能。

另外,分析狗的程序,如果没有经验,还是带狗玩。
2005-10-11 21:02
0
游客
登录 | 注册 方可回帖
返回
//