首页
社区
课程
招聘
请教如何设置断点问题(有实例)
发表于: 2010-6-12 15:21 3992

请教如何设置断点问题(有实例)

2010-6-12 15:21
3992
先谢谢各位了!

最近看到一个“crackme”例子,想下下来练练手。
    例子在ShyDevil的“http://www.kanxue.com/showthread.php?t=93843”
中(Crackeme),结果使用了各种方法来拦截[/url] “用户输入的数据”都没有拦截到,包括设置“GetWindowTextA”、“GetWindowTextW”、“GetDlgItemTextA”。。。。。等常用的拦截输入数据的断点,可就是拦截不到,或者是拦截到程序中不断循环调用的断点(特别是有些函数,只要选中输入窗口,就会调用)。本来想使用消息断点,在“确定”按钮上设置 消息断点,结果老是出现:“无法读取调试进程的内存. 位于 FFFF10FB 的断点已被删除."的问题,很是郁闷。
   
    跟踪了一下“范范love”的破解程序,发现是有个SWITCH , 程序是在不断执行的,但是只有在点击“确定”后才会进入到暴破的程序处。
    想请教下各位,碰到这种程序(好象发现这样的程序还非常多),该如何设置断点才能跟踪到读取序列号进行处理的地方呢?
    新手,期待大家的帮助,谢谢。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
2
lz的帖很神奇!
2010-6-12 15:25
0
雪    币: 271
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不好意思,第一次发贴,选择了自动分析链接,结果把内容覆盖了。
2010-6-12 16:20
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
4
这个是可以用GetWindowTextW断下的
2010-6-12 16:55
0
雪    币: 271
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢两位的回复, 用GetWindowTextW设置断点时,不输入任何东西,也在不停的断下,没有办法分析。
能怎么过滤出是用户的输入吗?条件断点?
2010-6-12 19:44
0
雪    币: 360
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rol
6
可以下条件断点啊,先f9运行起来,看看edit窗口handle 然后条件[esp+4]==handle
2010-6-12 20:11
0
雪    币: 213
活跃值: (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
可以对GetWindowTextW下断的,取参考出来的第一个函数,会断两次,分别取注册名和注册码,地址的话我可能跟你不一样,我吧代码贴出来
0040A129  |.  E8 6BC9FFFF   CALL CrackMe.00406A99
0040A12E  |.  50            PUSH EAX                                 ; |Buffer
0040A12F  |.  FF76 20       PUSH DWORD PTR DS:[ESI+20]               ; |hWnd
0040A132  |.  FF15 AC334300 CALL DWORD PTR DS:[<&USER32.GetWindowTex>; \GetWindowTextW
0040A138  |.  8B4C24 08     MOV ECX,DWORD PTR SS:[ESP+8]
0040A13C  |.  6A FF         PUSH -1
0040A13E  |.  E8 649FFFFF   CALL CrackMe.004040A7
0040A143  |.  5E            POP ESI
0040A144  |.  C2 0400       RETN 4

注册名输入aaaa 注册码输入bbbb后
第一次下断后堆栈:
0012F89C   000701EC
0012F8A0   00A67DF8  UNICODE "aaaa"
0012F8A4   00000005
0012F8A8   0012FE90
二次断下后堆栈
0012F898   0040A138  CrackMe.0040A138
0012F89C   000E01E6
0012F8A0   00A67E30  UNICODE "bbbb"
0012F8A4   00000005
0012F8A8   0012FE90
然后直接对aaaa或者bbbb的地址下内存断点就可以跟出算法了。。
2010-6-12 20:18
0
雪    币: 271
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢“rol”和“rainyxufh”,两位的方法已实验成功。
2010-6-13 11:39
0
游客
登录 | 注册 方可回帖
返回