首页
社区
课程
招聘
[原创]菜鸟必看的破解文章(3)-没有信息框提示的软件的破解
发表于: 2005-1-24 19:31 11553

[原创]菜鸟必看的破解文章(3)-没有信息框提示的软件的破解

2005-1-24 19:31
11553

【破文作者】   小弟[爆破王]

【文章题目】   菜鸟必看的破解文章(3)-没有信息框提示的软件的破解

【软件名称】   crackme

【加密方式】   加壳upx LCC(什么东东?没有听说过)

【破解工具】   还是Ollydbg 1.10b和peid,upx-ripper,Unpacker for UPX

【破解难度】   +++初级+++           中级            高级            超难

【破解平台】   XP SP2

----------------------------------------------------------------------------------------------
【文章简介】

这里主要讲没有提示的软件的破解,比如输入注册码后没有提示,而是在输入注册码的地方显示提示.

----------------------------------------------------------------------------------------------
【破解过程】
破解前的思路:
在输入注册码后,点击cheak,在Serial里提示"Maybe ask Joe?",估计程序里应该有这个提示字符串,所以用常规方法尝试
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
用Ollydbg 1.10b载入sd-cm_.exe,提示此软件已加壳,退出Ollydbg 1.10b,用peid查看,发现是用upx加壳,用upx-ripper(
一般是先用他脱,他脱的比较好,能编辑资源文件)脱壳在最后校验的时候提示错误,看来是加了多层壳了(这是经验哦^_^),
用Unpacker for UPX(他脱壳没有效验,可以脱多层壳,缺点是资源在脱壳后无法编辑)脱壳,然后再用peid查看发现第2层壳是
LCC(什么东东?)加的壳,没有这种壳的脱壳器,只好直接调试.载入后运行,随便输入注册码和用户名,点击check,在注册码处
看到提示字符串Maybe ask Joe?,在汇编的代码上右击搜索->字符参考,显示不出字符串,用老罗的插件来显示(用Find ASCII,这里加一下上篇帖子里 <<Lanneret 兄说得VB 的问题也可一用老罗的插件,用另一个显示即可)
,发现了字符串Maybe ask Joe?.双击来到这里----------------------------------------------------------------------
0040300B    /E9 E8010000          jmp 34567890.004031F8                                                      |
00403010    |68 2C794000          push 34567890.0040792C             ; ASCII "Joe"<-这个是真正的用户名       |
00403015    |68 58764000          push 34567890.00407658             ; ASCII "xd"<-这个是你输入的姓名        |
0040301A    |E8 5D090000          call <jmp.&KERNEL32.lstrcmpA>                                              |
0040301F    |83F8 00              cmp eax,0                                                                  |
00403022    |75 14       |--跳转- jnz short 34567890.00403038<-------这个是关键跳转,可以看到他把正确的地方   |
00403024    |6A 30       |   ---| push 30                            略过了,并且跳转到了错误的信息的地方,可  |
00403026    |68 B1784000 |正    | push 34567890.004078B1             以知道它是关键跳转,改为jz,点击          |
0040302B    |68 BB784000 |确 容 | push 34567890.004078BB             继续执行,软件注册成功^_^                |
00403030    |FF75 08     |的    | push dword ptr ss:[ebp+8]                                                  |
00403033    |E8 98090000 |内 ---| call <jmp.&USER32.MessageBoxA>                                             |
00403038    |6A 23       |--到--- push 23                                                                    |
0040303A    |68 BC764000          push 34567890.004076BC             ; ASCII "Maybe ask Joe?"<----------------
0040303F    |68 C9000000          push 0C9
00403044    |FF75 08              push dword ptr ss:[ebp+8]
00403047    |E8 60090000          call <jmp.&USER32.GetDlgItemTextA>
0040304C    |A3 00404000          mov dword ptr ds:[404000],eax
00403051    |833D 00404000 20     cmp dword ptr ds:[404000],20
00403058    |73 17                jnb short 34567890.00403071
0040305A    |68 A2784000          push 34567890.004078A2             ; ASCII "Maybe ask Joe?"
0040305F    |68 C9000000          push 0C9
00403064    |FF75 08              push dword ptr ss:[ebp+8]
00403067    |E8 34090000          call <jmp.&USER32.SetDlgItemTextA>
0040306C    |E9 87010000          jmp 34567890.004031F8
00403071    |C705 0C404000 000000>mov dword ptr ds:[40400C],0
是不是很简单,只要找到关键的地方就很容易破解.

----------------------------------------------------------------------------------------------
【破解心得】
其实这个crackme有很多破解方法这里一一举出,扩展更多的知识给广大破解初学者:

方法1:
可以在这里下断"0040301F    |83F8 00              cmp eax,0"
断下后在寄存器窗口的eax那行的16进制数据上单击(那个数据的底色变成黄色),然后右击(在我的机器上不这样操作选项出不来),选择
修改,然后改为0,注册即可成功.
这里之所以改为0,是因为"cmp eax,0 和jnz short 34567890.00403038"这个代码的意思是用0来删除eax的值,如果为0就不跳转,(
注册正确)而不为0就跳转(跳就提示注册失败),我们把值改为0,这样0-0=0,不跳转,注册成功
不过一般不这样改,因为每次都要修改寄存器.比较麻烦

方法2:
修改注册错误后的跳转把"jnz short 34567890.00403038(前面是文件名,大家不要被误导)"改为
"jnz short 34567890.00403024(这个是提示注册正确的地方的开头代码)"这样注册成功,继续执行注册正确的提示代码,
注册错误,还是执行注册正确的代码
这样的破解是比较完美的.

方法3:
这个就不能说是方法了
看到我在上面的注释; ASCII "Joe"<-这个是真正的用户名
                  ; ASCII "xd"<-这个是你输入的姓名 .
了么,这了可以看出Joe是真正的注册名,因为在对比注册名的时候压入了这个字符串,所以可以猜到Joe(对比注册名,
他区分大小写)为注册名.

最后写出程序的格式

if 注册名=Joe then
注册成功
else
在注册码的文本框里显示注册错误
end if

方法1格式:
if 注册名=Joe then<--这里如果不等于,eax的值就为1,等于就为0
注册成功          (接上)我们在这里把eax的值改为0就可相等
else
在注册码的文本框里显示注册错误
end if

方法2格式:

if 注册名=Joe then
注册成功:
         注册成功
else
goto 注册成功
end if

方法3的程序格式实在是不知到怎么写,所以就不写了.

这次写的罗索了一点,因为是给菜鸟看的,把我的经验写出来.不要仍鸡蛋哦^_^
----------------------------------------------------------------------------------------------
【破解声明】   我是一只小菜鸟,偶得一点心得,愿与大家分享:)

【版权声明】   本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!
----------------------------------------------------------------------------------------------
                                                                                 文章写于2005-1-18 18:39:17附件:34567890.rar


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

收藏
免费 7
支持
分享
最新回复 (18)
雪    币: 2054
活跃值: (282)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
2
这里把我要写的所有的文章题目列出来,不一定都能写,但是估计大部分文章都能写出来(我写的都是我能破解的
一些方法),这里没有列出有关写算法分析的帖子,因为本人还不会写注册机(是不是很菜^_^),不过正在努了中.
我会尽量写出有关算法分析的文章

列表:

菜鸟必看的破解文章(1)-爆破软件(已贴出)
菜鸟必看的破解文章(2)-追出软件注册码(已帖出)
菜鸟必看的破解文章(2)-追出软件注册码-答案(已完成,正在修改...)
菜鸟必看的破解文章(3)-没有信息框提示的软件的破解(已完成,正在修改...)
菜鸟必看的破解文章(4)-没有提示的软件的破解(正在写作中...)
菜鸟必看的破解文章(5)-重启验证的软件破解(正在写作中...)
菜鸟必看的破解文章(6)-经典软件的使用-用w32dasm静态破解的方法(还没写,只有题目)
菜鸟必看的破解文章(7)-经典软件的使用-用SmartCheck破解VB程序(还没写,只有题目)
菜鸟必看的破解文章(8)-实战演练-热键大师的破解(还没写,只有题目)
菜鸟必看的破解文章(9)-实战演练-键盘乐器2.2的破解(还没写,只有题目)
.......(后面写些什么,还没有想.希望大家能告诉我一些好的题目)
2005-1-24 19:33
0
雪    币: 162
活跃值: (63)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3

谢谢小弟兄解决了我的问题呵呵!如果有网址请告知,我马上去找一下试试,再次感谢 呵呵
2005-1-24 19:41
0
雪    币: 209
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
好,喜欢!

给个程序连接,让我们试试
2005-1-24 20:34
0
雪    币: 176
活跃值: (117)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
LCC(什么东东?)加的壳,没有这种壳的脱壳器



LCC是C/C++编译器
比VC++和BCB小巧运行速度快
有自己专用函数库
编译的程序很小
主程序只有几M

通过长期观察这个编译器编译的很多程序的OEP都是4011CB
2005-1-24 20:40
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
支持小弟,不知道列表里的什么时候能出来?辛苦了!
2005-1-24 20:47
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
7
辛苦,支持!
2005-1-25 02:01
0
雪    币: 272
活跃值: (470)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
8
支持!顶一个
2005-1-25 09:18
0
雪    币: 97697
活跃值: (200834)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
支持你!!!
2005-1-27 02:01
0
雪    币: 214
活跃值: (15)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
最初由 小弟 发布
这里把我要写的所有的文章题目列出来,不一定都能写,但是估计大部分文章都能写出来(我写的都是我能破解的
一些方法),这里没有列出有关写算法分析的帖子,因为本人还不会写注册机(是不是很菜^_^),不过正在努了中.
我会尽量写出有关算法分析的文章

列表:
........

期待楼主的好文章!
2005-1-27 23:34
0
雪    币: 250
活跃值: (103)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
期待楼主的好文章!
2005-2-7 21:16
0
雪    币: 313
活跃值: (440)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
12
这个还不是完全没有提示吧,那些没有提示的是,按OK后程序看不出变化..
不过还是感谢提供,小弟也破过这个crackme...
2005-2-7 21:50
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
13
我遇到过一个软件
用户名是JOE
注册后没提示
只是将假码写入INI文件
根据注册码不能少于4的错误提示追入,没发现比较的地方
注册码不能大于4
只是将假码写入INI文件
用W32ASM分析,软件似乎启动时调用INI文件,并调用PASSWORD文件(内有一串数字)
没发现可疑的判断处
该如何着手?
2005-2-9 10:08
0
雪    币: 423
活跃值: (11)
能力值: ( LV9,RANK:230 )
在线值:
发帖
回帖
粉丝
14
我遇到过一个软件
用户名是JOE
注册后没提示
只是将假码写入INI文件
根据注册码不能少于4的错误提示追入,没发现比较的地方
注册码大于4
只是将假码写入INI文件
用W32ASM分析,软件似乎启动时调用INI文件,并调用PASSWORD文件(内有一串数字)
没发现可疑的判断处
该如何着手?
2005-2-9 10:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
把那个破解的软件地址也贴出来让我们菜虫也跟着一步一步的试试呀楼主。写这样的好文章真感谢楼主,就是自己没有实际跟着楼主操作有一些隔靴搔痒的那个那个意思。
2005-2-9 23:03
0
雪    币: 198
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
支持呀!!!!!!!!
2005-2-10 11:06
0
雪    币: 414
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
17
恩恩,不支持一下也不行!
顶~~
2005-2-10 17:38
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Jam
18
不错啊~感激楼主啊~~
2005-2-11 22:43
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
2005-2-17 11:55
0
游客
登录 | 注册 方可回帖
返回
//