能力值:
( LV2,RANK:10 )
|
-
-
2 楼
关键call在401c1c,f7跟进里面很清楚的
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
回复楼上的高手。我有个疑问:
如何确定关键call?
谢谢
|
能力值:
( LV8,RANK:130 )
|
-
-
4 楼
楼主与二楼定位都正确,二楼的比楼主的外一层,
楼主的定位在二楼的call里面
这个程序在楼主断点的前一个循环有异常产生
如果key:123456789 ,可以到楼主的断点,如果key:001002003004 ,就异常退出.
没有仔细研究这个异常是作者故意设计的还是程序bug.但楼主的断点思想还是没有错误的
|
能力值:
(RANK:520 )
|
-
-
5 楼
可以参考下代码:http://bbs.pediy.com/showthread.php?t=63701&page=3
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我还有一个问题就是,当我把断点加在00401A87的地方,然后F9运行程序,当我输入aaaaaaa的时候,程序弹出对话框,当我关闭对话框以后,我想再用F7单步调试时,发现按F7没有反应,这是为什么呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
00401844 |> /8B4D 0C /mov ecx, dword ptr [ebp+C]
00401847 |. |034D B8 |add ecx, dword ptr [ebp-48]
0040184A |. |0FBE11 |movsx edx, byte ptr [ecx]
0040184D |. |83EA 30 |sub edx, 30
00401850 |. |85D2 |test edx, edx
00401852 |. |7C 1C |jl short 00401870
00401854 |. |8B45 0C |mov eax, dword ptr [ebp+C]
00401857 |. |0345 B8 |add eax, dword ptr [ebp-48]
0040185A |. |0FBE08 |movsx ecx, byte ptr [eax]
0040185D |. |83E9 30 |sub ecx, 30
00401860 |. |83F9 09 |cmp ecx, 9 //asc码(16进制的)-30与9比较
00401863 |. |7F 0B |jg short 00401870 //大于则跳
00401865 |. |8B55 B8 |mov edx, dword ptr [ebp-48]
00401868 |. |83C2 01 |add edx, 1
0040186B |. |8955 B8 |mov dword ptr [ebp-48], edx
0040186E |.^\EB D4 \jmp short 00401844
00401870 |> 837D B8 07 cmp dword ptr [ebp-48], 7 //循环次数与7比较
00401874 |. 7D 23 jge short 00401899 //大于等于7就没事
00401876 |. 6A 00 push 0
00401878 |. 6A 00 push 0
0040187A |. 68 68354000 push 00403568 ; ASCII "wrong key!"
也就是说前7位的asc码要小于39
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
请教高手,我从什么地方能看出输入码与最后结果之间的比较呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
还有,我觉得二楼的断点(401c1c)找的比较好(我找的是00401A87),易于测试.请问一般这种入口断点该如何确定呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我的第三个疑问就是:堆栈[ebp+C] [ebp-48]的内容我在什么地方能够看到呢?
|
|
|