首页
社区
课程
招聘
[旧帖] [原创]初学破解,小试牛刀,希望对各位有用 0.00雪花
2010-8-3 04:18 23523

[旧帖] [原创]初学破解,小试牛刀,希望对各位有用 0.00雪花

2010-8-3 04:18
23523
程序界面如图1所示:





首先用PEID查壳发现程序无壳,语言为:Borland Delphi 6.0 - 7.0,如图2所示



直接用W32DASM加载主程序,查看串式参考,找到如下内容:



双击注册成功和失败的提示,来到相应代码处





用OD载入程序,输入命令bp 006091A9下断,找到该断点处,分析附近代码

006090A5   . /0F85 FE000000 JNZ jyWuYeMa.006091A9                    ;  -----------------注册判断的地方,下面是注册成功时保存注册码等信息
006090AB   . |33C0          XOR EAX,EAX
006090AD   . |55            PUSH EBP
006090AE   . |68 95916000   PUSH jyWuYeMa.00609195
006090B3   . |64:FF30       PUSH DWORD PTR FS:[EAX]
006090B6   . |64:8920       MOV DWORD PTR FS:[EAX],ESP
006090B9   . |B2 01         MOV DL,1
006090BB   . |A1 302B4700   MOV EAX,DWORD PTR DS:[472B30]
006090C0   . |E8 D79BE6FF   CALL jyWuYeMa.00472C9C
006090C5   . |8BD8          MOV EBX,EAX
006090C7   . |BA 02000080   MOV EDX,80000002
006090CC   . |8BC3          MOV EAX,EBX
006090CE   . |E8 A59CE6FF   CALL jyWuYeMa.00472D78
006090D3   . |B1 01         MOV CL,1
006090D5   . |8B15 2C5B6700 MOV EDX,DWORD PTR DS:[675B2C]            ;  jyWuYeMa.00608EBC
006090DB   . |8BC3          MOV EAX,EBX
006090DD   . |E8 DA9DE6FF   CALL jyWuYeMa.00472EBC
006090E2   . |8D55 D8       LEA EDX,DWORD PTR SS:[EBP-28]
006090E5   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
006090E8   . |8B80 04030000 MOV EAX,DWORD PTR DS:[EAX+304]
006090EE   . |E8 A15AE4FF   CALL jyWuYeMa.0044EB94
006090F3   . |8B4D D8       MOV ECX,DWORD PTR SS:[EBP-28]
006090F6   . |BA 64926000   MOV EDX,jyWuYeMa.00609264                ;  ASCII "UserName"
006090FB   . |8BC3          MOV EAX,EBX
006090FD   . |E8 569FE6FF   CALL jyWuYeMa.00473058
00609102   . |8D55 D0       LEA EDX,DWORD PTR SS:[EBP-30]
00609105   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
00609108   . |8B80 F4020000 MOV EAX,DWORD PTR DS:[EAX+2F4]
0060910E   . |E8 815AE4FF   CALL jyWuYeMa.0044EB94
00609113   . |8B45 D0       MOV EAX,DWORD PTR SS:[EBP-30]
00609116   . |E8 45BFDFFF   CALL jyWuYeMa.00405060
0060911B   . |50            PUSH EAX
0060911C   . |E8 6B18FFFF   CALL <JMP.&PunUnitLib.SavePass>
00609121   . |8BD0          MOV EDX,EAX
00609123   . |8D45 D4       LEA EAX,DWORD PTR SS:[EBP-2C]
00609126   . |E8 75BCDFFF   CALL jyWuYeMa.00404DA0
0060912B   . |8B4D D4       MOV ECX,DWORD PTR SS:[EBP-2C]
0060912E   . |BA 78926000   MOV EDX,jyWuYeMa.00609278                ;  ASCII "SignCode"
00609133   . |8BC3          MOV EAX,EBX
00609135   . |E8 1E9FE6FF   CALL jyWuYeMa.00473058
0060913A   . |8B45 F8       MOV EAX,DWORD PTR SS:[EBP-8]
0060913D   . |E8 1EBFDFFF   CALL jyWuYeMa.00405060
00609142   . |50            PUSH EAX
00609143   . |E8 4418FFFF   CALL <JMP.&PunUnitLib.SavePass>
00609148   . |8BD0          MOV EDX,EAX
0060914A   . |8D45 CC       LEA EAX,DWORD PTR SS:[EBP-34]
0060914D   . |E8 4EBCDFFF   CALL jyWuYeMa.00404DA0
00609152   . |8B4D CC       MOV ECX,DWORD PTR SS:[EBP-34]
00609155   . |BA 8C926000   MOV EDX,jyWuYeMa.0060928C                ;  ASCII "RegCode"
0060915A   . |8BC3          MOV EAX,EBX
0060915C   . |E8 F79EE6FF   CALL jyWuYeMa.00473058
00609161   . |8BC3          MOV EAX,EBX
00609163   . |E8 D8ABDFFF   CALL jyWuYeMa.00403D40
00609168   . |6A 00         PUSH 0
0060916A   . |68 94926000   PUSH jyWuYeMa.00609294
0060916F   . |E8 F017FFFF   CALL <JMP.&PunUnitLib.ShowMess>
00609174   . |A1 8C646700   MOV EAX,DWORD PTR DS:[67648C]
00609179   . |C700 02000000 MOV DWORD PTR DS:[EAX],2
0060917F   . |A1 48626700   MOV EAX,DWORD PTR DS:[676248]
00609184   . |8B00          MOV EAX,DWORD PTR DS:[EAX]
00609186   . |E8 7D75E6FF   CALL jyWuYeMa.00470708
0060918B   . |33C0          XOR EAX,EAX
0060918D   . |5A            POP EDX
0060918E   . |59            POP ECX
0060918F   . |59            POP ECX
00609190   . |64:8910       MOV DWORD PTR FS:[EAX],EDX
00609193   . |EB 20         JMP SHORT jyWuYeMa.006091B5
00609195   .^|E9 86B0DFFF   JMP jyWuYeMa.00404220
0060919A   . |8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0060919D   . |E8 B63CE6FF   CALL jyWuYeMa.0046CE58
006091A2   . |E8 A5B4DFFF   CALL jyWuYeMa.0040464C
006091A7   . |EB 0C         JMP SHORT jyWuYeMa.006091B5
006091A9   > \6A 03         PUSH 3                                   ;  -------------跳转到这里就提示注册失败哦
006091AB   .  68 B8926000   PUSH jyWuYeMa.006092B8
006091B0   .  E8 AF17FFFF   CALL <JMP.&PunUnitLib.ShowMess>

破解很简单,直接修改006090A5 处 JNZ jyWuYeMa.006091A9 为 JZ jyWuYeMa.006091A9 或者nop,随意输入注册码即可注册成功。。。



F9将程序运行起来,随意输入一个注册码,点击注册后程序中断在了006090A5 处,F8单步一下看看,出现如下错误提示



重新输入一个注册码,将右侧寄存器处双击z位数值,由0改为1,此时006090A5 处的跳转失效



F9运行程序,可以看到如下注册成功提示



OK,破解完啦,现在保存一下吧

右击刚刚修改的地方,如图所示,对修改后的程序进行保存



注册后不会再有45天的使用限制哦

我们再来看看软件的过期检测部分吧

0066F457   . /74 18         JE SHORT jyWuYeMa.0066F471
0066F459   . |A1 8C646700   MOV EAX,DWORD PTR DS:[67648C]
0066F45E   . |8338 00       CMP DWORD PTR DS:[EAX],0
0066F461   . |7F 0E         JG SHORT jyWuYeMa.0066F471
0066F463   . |6A 01         PUSH 1
0066F465   . |68 24F56600   PUSH jyWuYeMa.0066F524                   ;  软件已过期,如需继续使用,请联系供应商...
0066F46A   . |E8 F5B4F8FF   CALL <JMP.&PunUnitLib.ShowMess>
0066F46F   . |EB 4A         JMP SHORT jyWuYeMa.0066F4BB
0066F471   > \A1 28616700   MOV EAX,DWORD PTR DS:[676128]

如果不注册的话,只要将0066F457处JE SHORT jyWuYeMa.0066F471改为jmp SHORT jyWuYeMa.0066F471也是可以去掉45天限制的,但是程序中还存在着很多使用上的限制,例如:

0066B928  |. /75 0E         JNZ SHORT jyWuYeMa.0066B938
0066B92A  |. |6A 00         PUSH 0
0066B92C  |. |68 C4B96600   PUSH jyWuYeMa.0066B9C4                   ;  对不起,此功能只有注册用户才具有!
0066B931  |. |E8 2EF0F8FF   CALL <JMP.&PunUnitLib.ShowMess>
0066B936  |. |EB 65         JMP SHORT jyWuYeMa.0066B99D
0066B938  |> \8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8]

那样的话是要改很多像0066B928  这样的地方的

感谢软软提醒我程序里面有暗桩!

看来程序并非启动时不做验证,肯定做了,不过偶太懒了。。。不想找,你可以下个readfile的断或者注册表的断找找看





直接搜索字符串让我大吃一斤。。。将近十几处的暗桩呢。。。

仅以其中一个说明:

00610394   /75 0E           JNZ SHORT wuyeMan.006103A4--------------------------------------⊙﹏⊙b汗太明显了。。。直接改为jmp或者jz即可
00610396   |6A 00           PUSH 0
00610398   |68 1C046100     PUSH wuyeMan.0061041C                    ; 对不起,此功能只有注册用户才具有!
0061039D   |E8 B6A2FDFF     CALL <JMP.&PunUnitLib.ShowMess>
006103A2   |EB 50           JMP SHORT wuyeMan.006103F4
006103A4   \8D55 F8         LEA EDX,DWORD PTR SS:[EBP-8]

其余的暗桩跟上面是一样的哦

补丁如下:



效果如图:



呵呵,收工

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (132)
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
datoufan 2010-8-3 07:02
2
0
挺好!~支持
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lengbin 2010-8-3 07:41
3
0
恭喜楼主。。
雪    币: 73
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
私仇之路 2010-8-3 08:41
4
0
估计搞到注册码应该也是可以的,顶楼主。。。
雪    币: 478
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
flyingayi 2010-8-3 09:13
5
0
看起来。好像破解成功概率很高啊。
雪    币: 185
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
chicklee 2010-8-3 09:17
6
0
恭喜楼主啊
雪    币: 579
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wjalxs 2010-8-3 09:22
7
0
很好的教程,顶!
雪    币: 334
活跃值: (70)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
雨耕山 1 2010-8-3 09:31
8
0
弄出注册码很难吧
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:25
9
0
哈哈,谢谢。。。马上就100kx,真是羡慕呀
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:25
10
0
谢谢哦。。。
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:27
11
0
这个注册码好难的哦,最后出来的signcode和regcode竟然是乱乱的一堆,我感觉好像是要写到文件或者注册表里面的。。。弄得有点晕晕的
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:29
12
0
哪有啊,很多我也不会的。。。我是看的论坛的加密与解密3,然后试试手的
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:30
13
0
谢谢哦。。。你跟我kx差不多呀,一起加油哦
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:31
14
0
呵呵,谢谢。。。感觉没写多少东西。。。不知道能拿到邀请码不
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 10:32
15
0
我感觉这个注册码好难搞的。。。好像根本就没在内存里出来过。。。出来的都是些乱乱的东西,很头疼
雪    币: 218
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lisw 2010-8-3 13:51
16
0
破解的不错
雪    币: 8
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fengw 2010-8-3 14:29
17
0
楼主好样的,学习了
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 15:47
18
0
初学乍练,还要向大家多多学习呀
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 15:48
19
0
谢谢呀。。。一起学习
雪    币: 499
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
glxrz 2010-8-3 19:21
20
0
支持原创
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
coupling 2010-8-3 20:40
21
0
很厉害啊,初学就能破解了
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 22:30
22
0
大家写的都好深奥,我感觉我这个写的太简单了。。。不知道能拿到邀请码不
雪    币: 193
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
davg 2010-8-3 22:31
23
0
其实也不是初学,看了好久,自己也破解过不少软件了,不过进步不大,想来看雪跟大家多学学
雪    币: 33
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
龍佑壞蛋 2010-8-5 11:23
24
0
我也要努力了啊
雪    币: 775
活跃值: (168)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
finsos 2010-8-5 14:20
25
0
小伙子 最好分析注册算法 对你有帮助 像这种既没加壳,有没加花,关键跳转也很清晰,直接字符串查找都能实现,不过呢,这种文章对于一个刚刚学破解的朋友还是很有帮助的哈,

Welcome Share Your Knowledge
游客
登录 | 注册 方可回帖
返回