能力值:
( LV9,RANK:1210 )
|
-
-
2 楼
NOP掉0040DA58
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
0040DA3F 60 > PUSHAD
0040DA40 E8 06000000 CALL NOTEPAD.0040DA4B
0040DA45 8B6424 08 MOV ESP,DWORD PTR SS:[ESP+8]
0040DA49 EB 1A JMP SHORT NOTEPAD.0040DA65
0040DA4B 64:67:FF36 0000 > PUSH DWORD PTR FS:[0]
0040DA51 64:67:8926 0000 MOV DWORD PTR FS:[0],ESP
0040DA57 9C PUSHFD
0040DA58 810C24 00010000 OR DWORD PTR SS:[ESP],100
0040DA5F 9D POPFD
0040DA60 F8 CLC
~~~
C标志永远的被置0,程序永远回到0040DA3F
0040DA58被NOP掉也没有用!
似乎这里的程序是一个错误的方向?
0040DA61 ^73 DC JNB SHORT NOTEPAD.0040DA3F --->
1楼 | IP:
|
能力值:
(RANK:1130 )
|
-
-
4 楼
晕!单步中断啊
0040DA4B 64:67:FF36 0000 > PUSH DWORD PTR FS:[0]
0040DA51 64:67:8926 0000 MOV DWORD PTR FS:[0],ESP
到这行对[esp+4]下断点,f9运行
|
能力值:
( LV9,RANK:690 )
|
-
-
5 楼
单步异常,不能单步走过
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
0040DA60会引发单步异常,不可以单步。
在0040DA45下断点,OD下F9,CTRL+F9就会到达0040DA45,跳出循环。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
小弟没有看明白,
OR DWORD PTR SS:[ESP],100
有什么作用呢?
|
能力值:
( LV4,RANK:50 )
|
-
-
8 楼
典型的seh:)
pushfd会产生异常
异常的进入点为40da45
在40da45下断试试
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我看出苗头来了,大哥们看看我分析的对不:
如果引发异常的话,程序会跳到0040DA45,
而下一句:
0040DA49 EB 1A JMP SHORT NOTEPAD.0040DA65
跳出来了,对吗?;)
不过,6楼说是“0040DA60会引发单步异常(clc)”而8楼syy大哥却说是pushfd引发的异常,谁对啊?可以说一下原因吗?
另外,我对这一句:
040DA51 64:67:8926 0000 MOV DWORD PTR FS:[0],ESP
不明白,为什么是esp而不是[esp]呢?
SS:[ESP+8]和SS:[ESP]又代表什么呢?
|
|
|