首页
社区
课程
招聘
[转帖]10分钟就破解密码保护的软件
发表于: 2005-5-1 19:49 7830

[转帖]10分钟就破解密码保护的软件

2005-5-1 19:49
7830
声明:
linf自己转贴自己帖子,原因:
2005-4-6 09:00左右,我通过朋友家的宽带,想在看雪论坛上发表此文章,但是当时论坛正在维护,于是发表在dfcg上。并没有再贴回来的意思。今日,查看我所提出的问题时,没有人回答,所以转贴在这里请教高手给予回答。如果30天内没有人能回答,自己将删除此文!!!
原址:
http://www.chinadfcg.com/viewthread.php?tid=143290&highlight=%2Blinf
10分钟就破解密码保护的软件

【破解者】 linf
【破解说明】新买了<<电脑迷>>(2005.04.)在光盘中拣几个软件学习破解.发现有两个软件,破解起来有特点,当然也很简单.这两个软件启动后,都需要输入密码才能运行.
    首先介绍第一个软件:不准玩游戏.
    我说的没有错,这个软件就叫"不准玩游戏",文件名为"nogame.exe
【软件说明】:(引用)
    作为一名家长,你也许对家里的电脑又爱又恨--恨的是它往往成为使孩子沉迷于电脑游戏的罪魁祸首。其实,只要给你的电脑装上一款好的管理软件,就可以让孩子在合适的时间到电脑上做合适的事情,使电脑真正成为孩子的良师益友。

软件授权:试用软件
使用限制:7天
文件大小:672 KB
使用平台:Windows 9x/Me/NT/2000/XP
开 发 者:ExeSoft

    下面是程序的帮助内容:
             《不准玩游戏 2005》使用说明
    本软件适用于家庭、办公室、网吧等场所。 安全性极高,较难被破解, 可放心地用于安全性要求较高的场所。(linf注:看了这篇文章你就知道了)

1、首次安装完成后需要做什么?
   ①运行此软件   ②点击“启动服务”按钮   ③设置密码 ④需要限制的游戏前打勾   ⑤需要限制的时间段前打勾

2、如何设置游戏限制?
   在主页面中启动服务,然后关闭主页面。 您的电脑就进入监视游戏状态。不论重启或注销都保持监视游戏状态。

3、如何成为正版用户?
   在“常规”页,点击“如何购买”查看相关事宜。

4、软件被卸载怎么办?系统时间被修改怎么办?
   未停止服务不能卸载软件或重新安装。
   限制服务启动的时候,无法修改时间。

【破解目的】:
    这次破解的目的不是破解注册码,而是破解他的密码.在程序设置好后,再次启动程序,需要输入密码才能运行,如果密码错误,就不能进入程序界面,也就不能解除各种限制.因此试着破解他的密码.真没有想到,只用了不到10分钟就OK了.而且作出了内存补丁!!
【破解过程】保证不超10分钟)
1.用TRW2000载入程序,也不用看壳,爽!
2.按F5,返回程序界面,填入假密码,不点击确定,
3.Ctrl+N进入TRW2000界面,下断点---"hmemcpy"
4.按F5,返回程序界面,点击确定,被中断.
5.在TRW2000界面下,先"bc"---清除断点,按F12,数着,按到15次,出错了.
6.再次重复上述步骤,这次按14次F12,再按1次F10,就来到这里:
0177:004AC2F4 8B45FC           MOV      EAX,[EBP-04]    <-- 假密码
0177:004AC2F7 8B93FC020000     MOV      EDX,[EBX+02FC]  <-- 真密码
0177:004AC2FD E84A85F5FF       CALL     0040484C        <-- 比较过程
0177:004AC302 7519             JNZ      004AC31D        <-- 跳就完蛋了
0177:004AC304 8D83FC020000     LEA      EAX,[EBX+02FC]
0177:004AC30A BA58C34A00       MOV      EDX,004AC358
0177:004AC30F E89081F5FF       CALL     004044A4
0177:004AC314 8BC3             MOV      EAX,EBX
0177:004AC316 E87542FBFF       CALL     00460590
0177:004AC31B EB11             JMP      SHORT 004AC32E
0177:004AC31D B86CC34A00       MOV      EAX,004AC36C
0177:004AC322 E86DFCF8FF       CALL     0043BF94 <--出现密码错误对话框.
0177:004AC327 8BC3             MOV      EAX,EBX
... ...
     看看比较过程call by 004AC2FD:
0177:0040484C 53               PUSH     EBX
0177:0040484D 56               PUSH     ESI
0177:0040484E 57               PUSH     EDI
0177:0040484F 89C6             MOV      ESI,EAX
0177:00404851 89D7             MOV      EDI,EDX
0177:00404853 39D0             CMP      EAX,EDX       作比较,
0177:00404855 0F848F000000     JZ       NEAR 004048EA 不相等就省事了,
0177:0040485B 85F6             TEST     ESI,ESI 即使相等,也要进行测试.?--     
0177:0040485D 7468             JZ       004048C7  --不明白?
0177:0040485F 85FF             TEST     EDI,EDI
0177:00404861 746B             JZ       004048CE
0177:00404863 8B46FC           MOV      EAX,[ESI-04]
0177:00404866 8B57FC           MOV      EDX,[EDI-04]
0177:00404869 29D0             SUB      EAX,EDX
0177:0040486B 7702             JA       0040486F
0177:0040486D 01C2             ADD      EDX,EAX
0177:0040486F 52               PUSH     EDX
0177:00404870 C1EA02           SHR      EDX,02
0177:00404873 7426             JZ       0040489B
0177:00404875 8B0E             MOV      ECX,[ESI]
0177:00404877 8B1F             MOV      EBX,[EDI]
0177:00404879 39D9             CMP      ECX,EBX
0177:0040487B 7558             JNZ      004048D5
0177:0040487D 4A               DEC      EDX
0177:0040487E 7415             JZ       00404895
0177:00404880 8B4E04           MOV      ECX,[ESI+04]
0177:00404883 8B5F04           MOV      EBX,[EDI+04]
0177:00404886 39D9             CMP      ECX,EBX
0177:00404888 754B             JNZ      004048D5
0177:0040488A 83C608           ADD      ESI,BYTE +08
0177:0040488D 83C708           ADD      EDI,BYTE +08
0177:00404890 4A               DEC      EDX
0177:00404891 75E2             JNZ      00404875
0177:00404893 EB06             JMP      SHORT 0040489B
0177:00404895 83C604           ADD      ESI,BYTE +04
0177:00404898 83C704           ADD      EDI,BYTE +04
0177:0040489B 5A               POP      EDX
0177:0040489C 83E203           AND      EDX,BYTE +03
0177:0040489F 7422             JZ       004048C3
0177:004048A1 8B0E             MOV      ECX,[ESI]
0177:004048A3 8B1F             MOV      EBX,[EDI]
0177:004048A5 38D9             CMP      CL,BL
0177:004048A7 7541             JNZ      004048EA
0177:004048A9 4A               DEC      EDX
0177:004048AA 7417             JZ       004048C3
0177:004048AC 38FD             CMP      CH,BH
0177:004048AE 753A             JNZ      004048EA
0177:004048B0 4A               DEC      EDX
0177:004048B1 7410             JZ       004048C3
0177:004048B3 81E30000FF00     AND      EBX,00FF0000
0177:004048B9 81E10000FF00     AND      ECX,00FF0000
0177:004048BF 39D9             CMP      ECX,EBX
0177:004048C1 7527             JNZ      004048EA
0177:004048C3 01C0             ADD      EAX,EAX
0177:004048C5 EB23             JMP      SHORT 004048EA
0177:004048C7 8B57FC           MOV      EDX,[EDI-04]
0177:004048CA 29D0             SUB      EAX,EDX
0177:004048CC EB1C             JMP      SHORT 004048EA
0177:004048CE 8B46FC           MOV      EAX,[ESI-04]
0177:004048D1 29D0             SUB      EAX,EDX
0177:004048D3 EB15             JMP      SHORT 004048EA
0177:004048D5 5A               POP      EDX
0177:004048D6 38D9             CMP      CL,BL
0177:004048D8 7510             JNZ      004048EA
0177:004048DA 38FD             CMP      CH,BH
0177:004048DC 750C             JNZ      004048EA
0177:004048DE C1E910           SHR      ECX,10
0177:004048E1 C1EB10           SHR      EBX,10
0177:004048E4 38D9             CMP      CL,BL
0177:004048E6 7502             JNZ      004048EA
0177:004048E8 38FD             CMP      CH,BH
0177:004048EA 5F               POP      EDI
0177:004048EB 5E               POP      ESI
0177:004048EC 5B               POP      EBX
0177:004048ED C3               RET
    下面做内存补丁,就用keymaker了:
修改地址:004AC302
修改长度:2
原始指令:7519
修改指令:7419,或9090,或7500都可以,我更喜欢7500.
    做成内存注册机更好,可以看见密码!
    怎么样,没有超过10分钟吧!
*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*

    好了接下来介绍第二个软件:应用程序保护者―Program Protector v2.01
【软件说明】:名称:protect.exe
    再看对他的介绍原文不动)
    严重声明:该软件的使用者,请记录并保管好自己设定的密码,以免发生遗憾……(linf注:看了这篇文章你就知道了)
    通过特殊算法加密、保护 windows应用程序,简单易用,对用户计算机知识无特别要求。功能:密码保护 windows 应用程序;维护加密程序列表;拖放程序文件和快捷方式添加到保护列;一体化帮助系统和提示功能;自我密码保护;自定义密码提示;完全兼容winXP;支持对被保护程序活动记录。
软件授权:免费软件
使用限制:无限制
文件大小:629 KB
使用平台:Windows 9x/Me/NT/2000/XP
开 发 者:Karlis Blumentals

    这个软件启动时,也要输入密码.破解的方法和上面的那个软件一模一样,连按几下都一样.按14次F12,再按1次F10,就来到这里:
0177:004B0F3C 8B15DC394B00     MOV      EDX,[004B39DC]  <-- 还用说吗?
0177:004B0F42 8B12             MOV      EDX,[EDX]       <-- 不用说了
0177:004B0F44 E8433EF5FF       CALL     00404D8C
0177:004B0F49 7504             JNZ      004B0F4F
0177:004B0F4B B301             MOV      BL,01
0177:004B0F4D EB46             JMP      SHORT 004B0F95  通向正确的大路
0177:004B0F4F 6A10             PUSH     BYTE +10
0177:004B0F51 8D55E4           LEA      EDX,[EBP-1C]
0177:004B0F54 A1243E4B00       MOV      EAX,[004B3E24]
0177:004B0F59 E8DE58F5FF       CALL     0040683C
0177:004B0F5E 8B45E4           MOV      EAX,[EBP-1C]
0177:004B0F61 E8DA3EF5FF       CALL     00404E40
0177:004B0F66 50               PUSH     EAX
0177:004B0F67 A1FC4F4B00       MOV      EAX,[004B4FFC]
0177:004B0F6C E8CF3EF5FF       CALL     00404E40
0177:004B0F71 8BC8             MOV      ECX,EAX
0177:004B0F73 A1303C4B00       MOV      EAX,[004B3C30]
0177:004B0F78 8B00             MOV      EAX,[EAX]
0177:004B0F7A 5A               POP      EDX
0177:004B0F7B E8B031FCFF       CALL     00474130   错误了
为了研究一下进入比较的call看看:
0177:00404D8C 53               PUSH     EBX
0177:00404D8D 56               PUSH     ESI
0177:00404D8E 57               PUSH     EDI
0177:00404D8F 89C6             MOV      ESI,EAX
0177:00404D91 89D7             MOV      EDI,EDX
0177:00404D93 39D0             CMP      EAX,EDX
0177:00404D95 0F848F000000     JZ       NEAR 00404E2A
0177:00404D9B 85F6             TEST     ESI,ESI
0177:00404D9D 7468             JZ       00404E07
0177:00404D9F 85FF             TEST     EDI,EDI
0177:00404DA1 746B             JZ       00404E0E
0177:00404DA3 8B46FC           MOV      EAX,[ESI-04]
0177:00404DA6 8B57FC           MOV      EDX,[EDI-04]
0177:00404DA9 29D0             SUB      EAX,EDX
0177:00404DAB 7702             JA       00404DAF
0177:00404DAD 01C2             ADD      EDX,EAX
0177:00404DAF 52               PUSH     EDX
0177:00404DB0 C1EA02           SHR      EDX,02
0177:00404DB3 7426             JZ       00404DDB
0177:00404DB5 8B0E             MOV      ECX,[ESI]
0177:00404DB7 8B1F             MOV      EBX,[EDI]
0177:00404DB9 39D9             CMP      ECX,EBX
0177:00404DBB 7558             JNZ      00404E15
0177:00404DBD 4A               DEC      EDX
0177:00404DBE 7415             JZ       00404DD5
0177:00404DC0 8B4E04           MOV      ECX,[ESI+04]
0177:00404DC3 8B5F04           MOV      EBX,[EDI+04]
0177:00404DC6 39D9             CMP      ECX,EBX
0177:00404DC8 754B             JNZ      00404E15
0177:00404DCA 83C608           ADD      ESI,BYTE +08
0177:00404DCD 83C708           ADD      EDI,BYTE +08
0177:00404DD0 4A               DEC      EDX
0177:00404DD1 75E2             JNZ      00404DB5
0177:00404DD3 EB06             JMP      SHORT 00404DDB
0177:00404DD5 83C604           ADD      ESI,BYTE +04
0177:00404DD8 83C704           ADD      EDI,BYTE +04
0177:00404DDB 5A               POP      EDX
0177:00404DDC 83E203           AND      EDX,BYTE +03
0177:00404DDF 7422             JZ       00404E03
0177:00404DE1 8B0E             MOV      ECX,[ESI]
0177:00404DE3 8B1F             MOV      EBX,[EDI]
0177:00404DE5 38D9             CMP      CL,BL
0177:00404DE7 7541             JNZ      00404E2A
0177:00404DE9 4A               DEC      EDX
0177:00404DEA 7417             JZ       00404E03
0177:00404DEC 38FD             CMP      CH,BH
0177:00404DEE 753A             JNZ      00404E2A
0177:00404DF0 4A               DEC      EDX
0177:00404DF1 7410             JZ       00404E03
0177:00404DF3 81E30000FF00     AND      EBX,00FF0000
0177:00404DF9 81E10000FF00     AND      ECX,00FF0000
0177:00404DFF 39D9             CMP      ECX,EBX
0177:00404E01 7527             JNZ      00404E2A
0177:00404E03 01C0             ADD      EAX,EAX
0177:00404E05 EB23             JMP      SHORT 00404E2A
0177:00404E07 8B57FC           MOV      EDX,[EDI-04]
0177:00404E0A 29D0             SUB      EAX,EDX
0177:00404E0C EB1C             JMP      SHORT 00404E2A
0177:00404E0E 8B46FC           MOV      EAX,[ESI-04]
0177:00404E11 29D0             SUB      EAX,EDX
0177:00404E13 EB15             JMP      SHORT 00404E2A
0177:00404E15 5A               POP      EDX
0177:00404E16 38D9             CMP      CL,BL
0177:00404E18 7510             JNZ      00404E2A
0177:00404E1A 38FD             CMP      CH,BH
0177:00404E1C 750C             JNZ      00404E2A
0177:00404E1E C1E910           SHR      ECX,10
0177:00404E21 C1EB10           SHR      EBX,10
0177:00404E24 38D9             CMP      CL,BL
0177:00404E26 7502             JNZ      00404E2A
0177:00404E28 38FD             CMP      CH,BH
0177:00404E2A 5F               POP      EDI
0177:00404E2B 5E               POP      ESI
0177:00404E2C 5B               POP      EBX
0177:00404E2D C3               RET     
    查看比较过程的机器码后发现,和前一个程序的比较过程的机器码竟是完全一样的!
    会不会有一种关系?是不是一种通用的加密形式?请高手看一下,能把结果贴过来,不胜感激!
    另外本人对protect.exe保护过的程序,也用上面的方法几分钟就可以搞定,比较的过程也一模一样.分析来看有一下特点:
1.加密后的程序比源程序大了约4k字节;
2.被加密的程序代码并没有被压缩,还可以用资源工具查看,但是使用PEID查看是这样:
Program Protector XP 1.0 -> BluMental;
3.放在别的系统也起作用.
    有明白保护原理的高手请指教一下,也让菜鸟飞得远些.
    贴出被protect.exe保护过的程序的比较过程部分代码:
这个程序从00Axxxxx开始,和以往的004xxxxx不同,怪怪的?
0167:00A94928 53               PUSH     EBX
0167:00A94929 56               PUSH     ESI
0167:00A9492A 57               PUSH     EDI
0167:00A9492B 89C6             MOV      ESI,EAX 假的密码
0167:00A9492D 89D7             MOV      EDI,EDX 被加密的程序的真密码
0167:00A9492F 39D0             CMP      EAX,EDX
0167:00A94931 0F848F000000     JZ       NEAR 00A949C6
0167:00A94937 85F6             TEST     ESI,ESI
0167:00A94939 7468             JZ       00A949A3
0167:00A9493B 85FF             TEST     EDI,EDI
0167:00A9493D 746B             JZ       00A949AA
0167:00A9493F 8B46FC           MOV      EAX,[ESI-04]

完。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
建议参考jackily的破文:http://bbs.crsky.com/read.php?tid=106324

转贴:

【关于程序启动密码的安全性问题】

软件简介中提到“安全性极高,较难被解除禁止,可放心地用于安全性要求较高的场所”,但其实在如下代码中很容易就可以将其启动密码爆

破或是提取。
004ADA8B   |. BA 18DE4A00       mov edx,GA_.004ADE18           ; ASCII "\SOFTWARE\ExeSoft\NoGame"
004ADA90   |. 8BC3           mov eax,ebx
004ADA92   |. E8 2DDAFBFF       call GA_.0046B4C4
004ADA97   |. 8D4D D8         lea ecx,dword ptr ss:[ebp-28]
004ADA9A   |. BA 3CDE4A00       mov edx,GA_.004ADE3C
004ADA9F   |. 8BC3           mov eax,ebx
004ADAA1   |. E8 06DCFBFF       call GA_.0046B6AC
004ADAA6   |. 8B55 D8         mov edx,dword ptr ss:[ebp-28]
004ADAA9   |. B8 742D4B00       mov eax,GA_.004B2D74
004ADAAE   |. E8 F169F5FF       call GA_.004044A4
004ADAB3   |. A1 742D4B00       mov eax,dword ptr ds:[4B2D74]
004ADAB8   |. E8 4B6CF5FF       call GA_.00404708
004ADABD   |. 83F8 08         cmp eax,8
004ADAC0   |. 74 0F           je short GA_.004ADAD1
004ADAC2   |. B8 742D4B00       mov eax,GA_.004B2D74
004ADAC7   |. BA 48DE4A00       mov edx,GA_.004ADE48           ; ASCII "00000000"
004ADACC   |. E8 D369F5FF       call GA_.004044A4
004ADAD1   |> 8D4D D4         lea ecx,dword ptr ss:[ebp-2C]
004ADAD4   |. BA 5CDE4A00       mov edx,GA_.004ADE5C
004ADAD9   |. 8BC3           mov eax,ebx
004ADADB   |. E8 CCDBFBFF       call GA_.0046B6AC
004ADAE0   |. 8B55 D4         mov edx,dword ptr ss:[ebp-2C]
004ADAE3   |. B8 782D4B00       mov eax,GA_.004B2D78
004ADAE8   |. E8 B769F5FF       call GA_.004044A4
004ADAED   |. 8BC3           mov eax,ebx
004ADAEF   |. E8 F05BF5FF       call GA_.004036E4
004ADAF4   |. 837D EC 00       cmp dword ptr ss:[ebp-14],0     ;[ebp-14]中存放程序启动密码(明码)
004ADAF8   |. 74 70           je short GA_.004ADB6A
004ADAFA   |. 8B0D 80164B00     mov ecx,dword ptr ds:[4B1680]     ; GA_.004B2C30
004ADB00   |. 8B09           mov ecx,dword ptr ds:[ecx]
004ADB02   |. B2 01           mov dl,1
004ADB04   |. A1 DCC04A00       mov eax,dword ptr ds:[4AC0DC]
004ADB09   |. E8 C2E9FAFF       call GA_.0045C4D0
004ADB0E   |. 8B15 38164B00     mov edx,dword ptr ds:[4B1638]     ; GA_.004B2D50
004ADB14   |. 8902           mov dword ptr ds:[edx],eax
004ADB16   |. A1 38164B00       mov eax,dword ptr ds:[4B1638]
004ADB1B   |. 8B00           mov eax,dword ptr ds:[eax]
004ADB1D   |. 05 FC020000       add eax,2FC
004ADB22   |. 8B55 EC         mov edx,dword ptr ss:[ebp-14]
004ADB25   |. E8 7A69F5FF       call GA_.004044A4
004ADB2A   |. A1 38164B00       mov eax,dword ptr ds:[4B1638]
004ADB2F   |. 8B00           mov eax,dword ptr ds:[eax]
004ADB31   |. 8B10           mov edx,dword ptr ds:[eax]
004ADB33   |. FF92 E8000000     call dword ptr ds:[edx+E8]       ; GA_.004607BC ,调用密码窗口,判断输入码与密码是否相等
004ADB39   |. A1 38164B00       mov eax,dword ptr ds:[4B1638]     
004ADB3E   |. 8B00           mov eax,dword ptr ds:[eax]
004ADB40   |. 8B80 FC020000     mov eax,dword ptr ds:[eax+2FC]   ;相等,则在此放入标志“yes,exesoft”
004ADB46   |. BA 68DE4A00       mov edx,GA_.004ADE68           ; ASCII "yes,exesoft"
004ADB4B   |. E8 FC6CF5FF       call GA_.0040484C             ;判断上两行的标志是否相同,
004ADB50   |. 74 18           je short GA_.004ADB6A           ;验证通过
....................没有通过则退出

只要在004ADAF8处跳转,启动密码就失效了;或者直接D ebp-14,提取启动密码。

                jackily
                二零零五年二月十九日
2005-5-2 11:00
0
雪    币: 151
活跃值: (66)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
支持你以下!~
2005-5-2 13:01
0
雪    币: 222
活跃值: (138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
感谢usb-hdd和shuair大侠的支持,linf明白一些ing
2005-5-3 19:07
0
游客
登录 | 注册 方可回帖
返回
//