首页
社区
课程
招聘
[求助]下断点的一些方法
发表于: 2009-1-1 18:16 4587

[求助]下断点的一些方法

2009-1-1 18:16
4587
大家好,刚才练习破解一个CRACKME,是用MASM编的,上面有一个OK按钮,左侧是用户名和序列号,我下了bp GetDlgItemTextW,bp GetDlgItemTextA,bp GetWindowTextW,bp GetWindowTextA这4个断点截不下来,用查找字符串的方式也看不到有效信息,在按钮上下断可以,但是总是在,PEEKMESSAGE,DISPATCHMESSAGE中循环,没有什么效果,请问还有什么更好的办法?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
2
报毒耶
123
2009-1-1 18:23
0
雪    币: 399
活跃值: (38)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
3
用汇编写的东西报毒很正常
在masm32与杀软之间,我坚定地选择了前者
2009-1-1 18:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不会啊,我是从这儿下载的http://ddcrack.vicp.net/crackit/crackme.htm,我的卡巴没有提示啊。
2009-1-1 18:36
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
他用 SendDlgItemMessageA(ControlID, WM_GetText, ,)
所以你上列的API拦不到
00401144   .  68 78374000   push    00403778                                  ; /lParam = 403778
00401149   .  6A 11         push    11                                        ; |wParam = 11
0040114B   .  6A 0D         push    0D                                        ; |Message = WM_GETTEXT
0040114D   .  68 E9030000   push    3E9                                       ; |ControlID = 3E9 (1001.)
00401152   .  FF75 08       push    dword ptr [ebp+8]                         ; |hWnd = 0012054C ('f0dder's crackme3 - ph33r',class='#32770')
00401155   .  E8 400C0000   call    <jmp.&USER32.SendDlgItemMessageA>         ; \SendDlgItemMessageA
0040115A   .  68 89374000   push    00403789                                  ; /lParam = 403789
0040115F   .  6A 09         push    9                                         ; |wParam = 9
00401161   .  6A 0D         push    0D                                        ; |Message = WM_GETTEXT
00401163   .  68 EA030000   push    3EA                                       ; |ControlID = 3EA (1002.)
00401168   .  FF75 08       push    dword ptr [ebp+8]                         ; |hWnd = 0012054C ('f0dder's crackme3 - ph33r',class='#32770')
0040116B   .  E8 2A0C0000   call    <jmp.&USER32.SendDlgItemMessageA>         ; \SendDlgItemMessageA
00401170   .  83F8 08       cmp     eax, 8
00401173   .  75 2C         jnz     short 004011A1
00401175   .  68 92374000   push    00403792                                  ; /lParam = 403792
0040117A   .  6A 09         push    9                                         ; |wParam = 9
0040117C   .  6A 0D         push    0D                                        ; |Message = WM_GETTEXT
0040117E   .  68 EB030000   push    3EB                                       ; |ControlID = 3EB (1003.)
00401183   .  FF75 08       push    dword ptr [ebp+8]                         ; |hWnd = 0012054C ('f0dder's crackme3 - ph33r',class='#32770')
00401186   .  E8 0F0C0000   call    <jmp.&USER32.SendDlgItemMessageA>         ; \SendDlgItemMessageA
0040118B   .  83F8 08       cmp     eax, 8
0040118E   .  75 11         jnz     short 004011A1
00401190   .  E8 E7080000   call    00401A7C

2009-1-1 20:08
0
雪    币: 347
活跃值: (30)
能力值: ( LV9,RANK:420 )
在线值:
发帖
回帖
粉丝
6
膜拜楼上的
2009-1-1 21:16
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
7
楼上大哥请后退几步让我好好膜拜膜拜 Orz
2009-1-1 23:28
0
雪    币: 2368
活跃值: (81)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
8
sessiondiy 特希望你是个女娃....
2009-1-2 09:34
0
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
9
一般直接用MASM或TASM写的CrackMe,入口都十分简单,这种CrackMe主要是用来学习算法分析的,关键代码根本不用找,用OD载入后一眼望去,就几个函数而已,看一下就知道哪个是了。

通常,用汇编写的程序都是用DialogBoxParamA来启动界面的。所以只要往下翻到这个位置,然后看一下DlgProc参数指向哪里,然后直接到DlgProc函数里,找到if (uMsg == WM_COMMAND)那个位置,F2就行了。
2009-1-2 15:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢各位的讲解。
2009-1-6 19:11
0
游客
登录 | 注册 方可回帖
返回
//