首页
社区
课程
招聘
[求助]晕啊!自己写的CrackMe,居然不知道如何下断?帮忙呀!
发表于: 2007-9-10 12:07 7415

[求助]晕啊!自己写的CrackMe,居然不知道如何下断?帮忙呀!

2007-9-10 12:07
7415

首先,对这种简单的问题来浪费大家的宝贵时间,先说声对不起了.

自己用VC6.0写的一个CrackMe,用来练习如何下断.
结果真给自己真给自己难住了!
实在想不出来怎么办了!

这两个edit控件,我是用关联变量得到里面的内容,不是用GetDlgItemText得到的,现在想在单击"验证"后把它断下来,要怎么做呢?

如果一步一步跟,碰到CALL时F8如果运行,在那个CALL上下断点,重新运行,再碰到CALL后,F8又运行了,再下断,这样能找到对比的那段代码!
可是这样做也未免太浪费时间了.并且在一个真正的软件调试时,一个软件肯定不会这么小,就这几行代码.如果它也用关联变量得到里面的内容,那我们岂不是要跟上十天半个月?

我想说的是:有没有像bp xxxxx的把它断下来.
谢谢!

声明:::  如果这是病毒杀了我全家!!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 148
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
路过,帮顶.
我下载过, 没有异常情况, 应该是正常程序.
不过, 这个程序ida反汇编后, 直接看字符串参考, 直接就定位到那个固定比较的代码了, 好像也没必要下断就可以了. 至于楼主问的如何在点按钮后下断的问题, 我不清楚, 期待知道的大侠出现稍指点一下.
2007-9-10 12:41
0
雪    币: 148
活跃值: (25)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
因为有弹出框, 所有可以断 bp MessageboxA , 返回后就在关键代码附近.
2007-9-10 12:53
0
雪    币: 14
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
呵呵这个程序只是用来学习下断,并不涉及到注册码算法问题!

也就是说,用MFC写的程序,虽然用OD的"查看当前模块的名称"找不到有MessageBoxA的这函数.
但它里面还是调用了这个WIN32的MessageBox的函数,用OD下断,MessageBox还是能断下的.

看来光长了张嘴还是不够的,还要多动动手!
2007-9-10 13:21
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
MFC程序,OD载入程序,CTRL+N,从列表中找到。DDX_Text。在每个参考上设置断点,在点击验证按钮。断下了么?
2007-9-13 15:10
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
6
编译器生成的东东都是有规律的,建议楼主多写几个小程序,加入一些特征,进行么汇编,跟踪分析,在找不到断点的情况下搜索特征值,次数多了,经验就有了,不用API都不用当心自己写的程序自己跟不到的情况了...
2007-9-13 15:52
0
雪    币: 125
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
2007-9-16 02:44
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
将程序用OD加载,然后CTRL+N,在这一行下断点:#3092_CWnd::GetDlgItem.
之后按F9,直到出现窗口,这时可以看见模块处于MFC中,(只要是模块处于MFC中就一路F8,不用细看代码),当模块第三次进入MyFirstCrackMe时就可以看见如下代码,之后的就不用说了吧 (本人很菜很菜的鸟.......高人多多指教)
调试信息如下:
004015A0   .  56            push    esi
004015A1   .  57            push    edi
004015A2   .  8BF1          mov     esi, ecx
004015A4   .  6A 01         push    1
004015A6   .  E8 CB020000   call    <jmp.&MFC42.#6334_CWnd::UpdateData>
004015AB   .  8B46 60       mov     eax, dword ptr [esi+60]
004015AE   .  8B3D BC214000 mov     edi, dword ptr [<&MSVCRT._mbscmp>]    ;  msvcrt._mbscmp
004015B4   .  68 3C314000   push    0040313C                              ; /s2 = ""
004015B9   .  50            push    eax                                   ; |s1
004015BA   .  FFD7          call    edi                                   ; \_mbscmp
004015BC   .  83C4 08       add     esp, 8
004015BF   .  85C0          test    eax, eax
004015C1   .  74 61         je      short 00401624
004015C3   .  8B46 64       mov     eax, dword ptr [esi+64]
004015C6   .  68 3C314000   push    0040313C
004015CB   .  50            push    eax
004015CC   .  FFD7          call    edi
004015CE   .  83C4 08       add     esp, 8
004015D1   .  85C0          test    eax, eax
004015D3   .  74 4F         je      short 00401624
004015D5   .  8B46 60       mov     eax, dword ptr [esi+60]
004015D8   .  68 30304000   push    00403030                              ;  ASCII "jping"
004015DD   .  50            push    eax
004015DE   .  FFD7          call    edi
004015E0   .  83C4 08       add     esp, 8
004015E3   .  85C0          test    eax, eax
004015E5   .  75 27         jnz     short 0040160E
004015E7   .  8B46 64       mov     eax, dword ptr [esi+64]
004015EA   .  68 20304000   push    00403020                              ;  ASCII "FirstCrackMe"
004015EF   .  50            push    eax
004015F0   .  FFD7          call    edi
004015F2   .  83C4 08       add     esp, 8
004015F5   .  85C0          test    eax, eax
004015F7   .  75 15         jnz     short 0040160E
004015F9   .  50            push    eax
004015FA   .  68 64304000   push    00403064
004015FF   .  68 58304000   push    00403058
00401604   .  8BCE          mov     ecx, esi
00401606   .  E8 65020000   call    <jmp.&MFC42.#4224_CWnd::MessageBoxA>
0040160B   .  5F            pop     edi
0040160C   .  5E            pop     esi
0040160D   .  C3            retn
0040160E   >  6A 00         push    0
00401610   .  68 64304000   push    00403064
00401615   .  68 48304000   push    00403048
0040161A   .  8BCE          mov     ecx, esi
0040161C   .  E8 4F020000   call    <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00401621   .  5F            pop     edi
00401622   .  5E            pop     esi
00401623   .  C3            retn
00401624   >  6A 00         push    0
00401626   .  68 64304000   push    00403064
0040162B   .  68 38304000   push    00403038
00401630   .  8BCE          mov     ecx, esi
00401632   .  E8 39020000   call    <jmp.&MFC42.#4224_CWnd::MessageBoxA>
00401637   .  5F            pop     edi
00401638   .  5E            pop     esi
00401639   .  C3            retn
2007-9-17 00:18
0
雪    币: 211
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习了,顶!!!!!!!!!!!!!
2007-9-20 16:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
查看MFC的消息映射表,一分钟定位到按钮函数代码处
2007-9-21 11:39
0
雪    币: 192
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼上的仁兄所讲的:查看MFC的消息映射表,能不能说的详细些?
2007-9-21 12:02
0
雪    币: 240
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
我就会一种办法,一直没长进,但对新手还是比较适合的。。。。

现在来说我的办法:
首先OD加载,运行(以确定无壳)
输入 用户名,试练码。
点‘确定’。    弹出错误提示,别关!
在OD中 点那个‘M’
然后随便在那右键->查找->输入用户名->确定
一般都有两个。我门在第二个上下内存访问断点。
返回软件,关掉提示,再点确定。
中断了,把内存断点删除。(右键代码栏->断点->删除内存断点)
再按住ALR+F9返回程序。一直按F8一直到跳出错误提示。
这样就找到关键代码了。。。

004015CE   .  83C4 08       add     esp, 8
004015D1   .  85C0          test    eax, eax
004015D3   .  74 4F         je      short 00401624
004015D5   .  8B46 60       mov     eax, dword ptr [esi+60]
004015D8   .  68 30304000   push    00403030                         ;  ASCII "jping"
004015DD   .  50            push    eax                           用户名如栈
004015DE   .  FFD7          call    edi
004015E0   .  83C4 08       add     esp, 8
004015E3   .  85C0          test    eax, eax
004015E5   .  75 27         jnz     short 0040160E
004015E7   .  8B46 64       mov     eax, dword ptr [esi+64]
004015EA   .  68 20304000   push    00403020                         ;  ASCII "FirstCrackMe"
004015EF   .  50            push    eax                      试练码入栈
004015F0   .  FFD7          call    edi
004015F2   .  83C4 08       add     esp, 8
004015F5   .  85C0          test    eax, eax
004015F7   .  75 15         jnz     short 0040160E
004015F9   .  50            push    eax
004015FA   .  68 64304000   push    00403064
004015FF   .  68 58304000   push    00403058
00401604   .  8BCE          mov     ecx, esi
00401606   .  E8 65020000   call    <jmp.&MFC42.#4224> 正确提示
0040160B   .  5F            pop     edi
0040160C   .  5E            pop     esi
0040160D   .  C3            retn
0040160E   >  6A 00         push    0
00401610   .  68 64304000   push    00403064
00401615   .  68 48304000   push    00403048
0040161A   .  8BCE          mov     ecx, esi
0040161C   .  E8 4F020000   call    <jmp.&MFC42.#4224>  错误提示
00401621   .  5F            pop     edi
00401622   .  5E            pop     esi
00401623   .  C3            retn
2007-9-24 20:23
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
路过~进来学习的~~下载了,试了一下,应该没什么问题吧~~
2007-9-29 10:27
0
雪    币: 213
活跃值: (70)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
004015EA   .  68 20304000   push    00403020                         ;  firstcrackme
004015EF   .  50            push    eax
004015F0   .  FFD7          call    edi              断在这个call上。  
004015F2   .  83C4 08       add     esp, 8
004015F5   .  85C0          test    eax, eax
004015F7   .  75 15         jnz     short 0040160E       爆破可以修改这里。  
004015F9   .  50            push    eax
004015FA   .  68 64304000   push    00403064                         ;  提示
004015FF   .  68 58304000   push    00403058                         ;  注册成功!
00401604   .  8BCE          mov     ecx, esi
00401606   .  E8 65020000   call    <jmp.&MFC42.#4224>
0040160B   .  5F            pop     edi
0040160C   .  5E            pop     esi
0040160D   .  C3            retn
0040160E   >  6A 00         push    0
00401610   .  68 64304000   push    00403064                         ;  提示
00401615   .  68 48304000   push    00403048                         ;  错误的注册码!
0040161A   .  8BCE          mov     ecx, esi
0040161C   .  E8 4F020000   call    <jmp.&MFC42.#4224>
00401621   .  5F            pop     edi
00401622   .  5E            pop     esi
00401623   .  C3            retn
00401624   >  6A 00         push    0
00401626   .  68 64304000   push    00403064                         ;  提示
0040162B   .  68 38304000   push    00403038                         ;  空的的注册码!
00401630   .  8BCE          mov     ecx, esi
00401632   .  E8 39020000   call    <jmp.&MFC42.#4224>
00401637   .  5F            pop     edi
00401638   .  5E            pop     esi
00401639   .  C3            retn
2007-10-5 08:47
0
游客
登录 | 注册 方可回帖
返回