吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 3580|回复: 14

[转载技术] 文本编辑XXredit逆向版简单爆破

[复制链接]
Shark_鹏 发表于 2015-3-24 16:09 | 显示全部楼层 |阅读模式

【详细过程】
  载入软件后右键搜索license.dat,双击进入
  004216C4  |.  83CA FF       OR      EDX, 0xFFFFFFFF
  004216C7  |.  F0:0FC111     LOCK XADD DWORD PTR DS:[ECX], EDX
  004216CB  |.  4A            DEC     EDX
  004216CC  |.  E9 61010000   JMP     EverEdit.00421832
  004216D1  |>  8B0D 00CB6000 MOV     ECX, DWORD PTR DS:[0x60CB00]
  004216D7  |.  57            PUSH    EDI
  004216D8  |.  68 80F85800   PUSH    EverEdit.0058F880                ;  license.dat
  004216DD  |.  51            PUSH    ECX
  004216DE  |.  8D5424 24     LEA     EDX, DWORD PTR SS:[ESP+0x24]
  004216E2  |.  52            PUSH    EDX
  004216E3  |.  E8 C8B4FFFF   CALL    EverEdit.0041CBB0
  004216E8  |.  8B4424 28     MOV     EAX, DWORD PTR SS:[ESP+0x28]
  004216EC  |.  68 78F85800   PUSH    EverEdit.0058F878                ;  wb

  向上找到段首F2,然后跑起来,发现没有断下来,是何原因呢?点击一下关于,然后输入注册码那里输入数据或者不输入都可以,点击确定就断下来了
  00421420  /$  81EC B8080000 SUB     ESP, 0x8B8
  00421426  |.  A1 CC145D00   MOV     EAX, DWORD PTR DS:[0x5D14CC]
  0042142B  |.  33C4          XOR     EAX, ESP
  0042142D  |.  898424 B40800>MOV     DWORD PTR SS:[ESP+0x8B4], EAX
  00421434  |.  53            PUSH    EBX
  00421435  |.  55            PUSH    EBP
  00421436  |.  33DB          XOR     EBX, EBX
  00421438  |.  68 C7000000   PUSH    0xC7
  0042143D  |.  8D8424 110400>LEA     EAX, DWORD PTR SS:[ESP+0x411]
  从段首F8往下走会发现验证注册码的地方
  0042145E  |.  51            PUSH    ECX
  0042145F  |.  8BCD          MOV     ECX, EBP
  00421461  |.  E8 CAF5FFFF   CALL    EverEdit.00420A30                ;  发现一个验证注册码的地方
  00421466  |.  3AC3          CMP     AL, BL
  00421468  |.  0F84 AE000000 JE      EverEdit.0042151C                ;  此处如果跳转实现了就会弹出来注册码不正确
  0042146E  |.  6A 63         PUSH    0x63
  00421470  |.  8D5424 1D     LEA     EDX, DWORD PTR SS:[ESP+0x1D]
  重载程序,F9,继续来到验证注册码的地方跑一次看看CMP AL,BL满足什么条件的时候这个跳转才不实现
  00420ADC  |.  84C0          TEST    AL, AL
  00420ADE  |.  8D46 F0       LEA     EAX, DWORD PTR DS:[ESI-0x10]
  00420AE1      8D48 0C       LEA     ECX, DWORD PTR DS:[EAX+0xC]
  00420AE4      74 17         JE      SHORT EverEdit.00420AFD          ;  此处跳转则AL赋值失败
  00420AE6      F0:0FC111     LOCK XADD DWORD PTR DS:[ECX], EDX
  00420AEA  |.  4A            DEC     EDX
  00420AEB  |.  85D2          TEST    EDX, EDX
  00420AED  |.  7F 0A         JG      SHORT EverEdit.00420AF9
  00420AEF  |.  8B08          MOV     ECX, DWORD PTR DS:[EAX]
  00420AF1  |.  8B11          MOV     EDX, DWORD PTR DS:[ECX]
  00420AF3  |.  50            PUSH    EAX
  00420AF4  |.  8B42 04       MOV     EAX, DWORD PTR DS:[EDX+0x4]
  00420AF7  |.  FFD0          CALL    NEAR EAX
  00420AF9  |>  B0 01         MOV     AL, 0x1

  二次来到跳转看到如果AL=1则CMP AL,BL比较成功,下面跳转不会跳
  00421466  |.  3AC3          CMP     AL, BL     路过上面的CALL 后发现BL=0 此处只需AL=1即可.
  00421468  |.  0F84 AE000000 JE      EverEdit.0042151C                ;  此处如果跳转实现了就会弹出来注册码不正确

  所以先这样改一下
  00420A30      B0 01         MOV     AL, 0x1
  00420A32      C2 0400       RETN    0x4
  00420A35      90            NOP
  00420A36  |.  A1 CC145D00   MOV     EAX, DWORD PTR DS:[0x5D14CC]

  过了一个注册码校验,继续向下走,似乎还有一处在等着咱们
  004214E6  |.  8D9424 500400>LEA     EDX, DWORD PTR SS:[ESP+0x450]
  004214ED  |.  68 CCF85800   PUSH    EverEdit.0058F8CC                ;  %c\t%s\t%s\t%s\t%[^\n]
  004214F2  |.  52            PUSH    EDX
  004214F3  |.  E8 795E1300   CALL    EverEdit.00557371                ;  那么我们跟进这个地址暂时修改MOV EAX,5  ret吧
  004214F8  |.  83C4 4C       ADD     ESP, 0x4C
  004214FB  |.  83F8 05       CMP     EAX, 0x5                         ;  这里又需要注意了,在这里EAX值为5时,下面的跳转才不会跳
  004214FE  |.  75 1C         JNZ     SHORT EverEdit.0042151C          ;  看到这个地址是不是有些眼熟?
  00421500  |.  8D8424 440300>LEA     EAX, DWORD PTR SS:[ESP+0x344]
  00421507  |.  50            PUSH    EAX
  00421508  |.  8D8C24 E40200>LEA     ECX, DWORD PTR SS:[ESP+0x2E4]
  0042150F  |.  51            PUSH    ECX
  跟进CALL后发现好多调用,难道都在这里取这个EAX=5,先猜想一下,暂时修改了看看结果
  00557371      B8 05000000   MOV     EAX, 0x5                         ;  别管它里面有多少内容,我现在要的就是让这里返回后EAX=5
  00557376      C3            RETN                                     ;  好多调用呀
  00557377  |.  8B75 08       MOV     ESI, [ARG.1]
  0055737A  |.  8D45 10       LEA     EAX, [ARG.3]
  0055737D  |.  50            PUSH    EAX
  继续向下走
  0042151A  |. /74 33         JE      SHORT EverEdit.0042154F          ;  跳转实现了,跳过了注册码错误
  0042151C  |> |6A 64         PUSH    0x64                             ;  以下就是弹出注册码不正确的地方
  0042151E  |. |8D5424 1C     LEA     EDX, DWORD PTR SS:[ESP+0x1C]
  00421522  |. |52            PUSH    EDX
  00421523  |. |68 993B0000   PUSH    0x3B99
  00421528  |. |B9 58B46000   MOV     ECX, EverEdit.0060B458
  0042152D  |. |E8 FEB10900   CALL    EverEdit.004BC730
  00421532  |. |8B4D 04       MOV     ECX, DWORD PTR SS:[EBP+0x4]
  00421535  |. |6A 30         PUSH    0x30
  00421537  |. |68 E0E15800   PUSH    EverEdit.0058E1E0                ;  EverEdit
  0042153C  |. |8D4424 20     LEA     EAX, DWORD PTR SS:[ESP+0x20]
  00421540  |. |50            PUSH    EAX
  00421541  |. |51            PUSH    ECX
  00421542  |. |E8 39F10300   CALL    EverEdit.00460680
  00421547  |. |83C4 10       ADD     ESP, 0x10
  0042154A  |. |E9 2A030000   JMP     EverEdit.00421879
  0042154F  |> \8B15 DCD65800 MOV     EDX, DWORD PTR DS:[<&USER32.DefW>;  user32.DefWindowProcW
  继续往前走,我也没想到一次性能调试成功,这是最顺利的一回
  0042159B  |.  8D4C24 24     LEA     ECX, DWORD PTR SS:[ESP+0x24]
  0042159F  |.  E8 0CEDFFFF   CALL    EverEdit.004202B0                ;  此时弹出要保存授权了,继续跟一下,不F7进去看了,如果实在想看也没关系
  004215A4  |.  3D B0040000   CMP     EAX, 0x4B0
  004215A9  |.  0F85 22010000 JNZ     EverEdit.004216D1                 :点击保存到注册表则此处不跳  
  004215AF  |.  8D4424 10     LEA     EAX, DWORD PTR SS:[ESP+0x10]
  004215B3  |.  50            PUSH    EAX                              ; /pHandle
  004215B4  |.  68 A8F85800   PUSH    EverEdit.0058F8A8                ; |Software\EverEdit
  004215B9  |.  68 01000080   PUSH    0x80000001                       ; |hKey = HKEY_CURRENT_USER
  004215BE  |.  895C24 1C     MOV     DWORD PTR SS:[ESP+0x1C], EBX     ; |
  004215C2  |.  FF15 1CD05800 CALL    NEAR DWORD PTR DS:[<&ADVAPI32.Re>; \RegOpenKeyW
  004215C8  |.  85C0          TEST    EAX, EAX
  004215CA  |.  74 15         JE      SHORT EverEdit.004215E1           :不跳则授权失败,幸好这里是跳的,不用动手脚了   
  004215CC  |.  8D4C24 10     LEA     ECX, DWORD PTR SS:[ESP+0x10]
此时跟到系统领空去了,F9了一下看到未注册没有了,是否就此逆向成功了吗?点击保存所有修改,运行起来看看.运行后突然发现逆向没成功.点击输入注册码依然弹出来保存授权到文件,注册后未注册消失
既然关于里面也验证了注册信息,就看看如何验证的,最终找到了RegOpenKeyExW是最合适的断点,既然要看关于,先不要着急下断点,把程序跑起来后再下断点.N次返回后到了这里,代码看起来有些清晰了
  0041F5C6  |.  68 01000080   PUSH    0x80000001                                               ; |hKey = HKEY_CURRENT_USER
  0041F5CB  |.  895C24 28     MOV     DWORD PTR SS:[ESP+0x28], EBX                             ; |
  0041F5CF  |.  895C24 2C     MOV     DWORD PTR SS:[ESP+0x2C], EBX                             ; |
  0041F5D3  |.  895C24 24     MOV     DWORD PTR SS:[ESP+0x24], EBX                             ; |
  0041F5D7  |.  FF15 34D05800 CALL    NEAR DWORD PTR DS:[<&ADVAPI32.RegOpenKeyExW>]            ; \RegOpenKeyExW
  0041F5DD  |.  3BC3          CMP     EAX, EBX
  0041F5DF  |.  0F85 A8000000 JNZ     EverEdit.0041F68D
  0041F5E5  |.  8B7C24 10     MOV     EDI, DWORD PTR SS:[ESP+0x10]
  0041F5E9  |.  33C0          XOR     EAX, EAX
  0041F5EB  |.  894424 2E     MOV     DWORD PTR SS:[ESP+0x2E], EAX
  0041F5EF  |.  894424 32     MOV     DWORD PTR SS:[ESP+0x32], EAX
  0041F5F3  |.  894424 36     MOV     DWORD PTR SS:[ESP+0x36], EAX
  继续往下走,看了一下没有重要线索,我直接在RET那里F4了返回再探
  0042029F  |.  8BC7          MOV     EAX, EDI
  004202A1  |.  5F            POP     EDI                                                      ;  0012F314
  004202A2  |.  5E            POP     ESI
  004202A3  \.  C2 0400       RETN    0x4
  再返回看看
  00420CBD  |.  51            PUSH    ECX
  00420CBE  |.  FFD5          CALL    NEAR EBP
  00420CC0  |.  50            PUSH    EAX
  00420CC1  |.  8D4F 7C       LEA     ECX, DWORD PTR DS:[EDI+0x7C]
  00420CC4  |.  E8 77F5FFFF   CALL    EverEdit.00420240                                        ;  恰似这里读取了注册信息
  00420CC9  |.  8B16          MOV     EDX, DWORD PTR DS:[ESI]                                  ;  返回到这里来了
  00420CCB  |.  68 B5040000   PUSH    0x4B5
  00420CD0  |.  52            PUSH    EDX
  00420CD1  |.  FFD5          CALL    NEAR EBP
  00420CD3  |.  50            PUSH    EAX
  接下来,去段首下断点,初步断定"关于"就在这里了.

  00420B30  /$  81EC E0020000 SUB     ESP, 0x2E0                                               ;  调用关于
  00420B36  |.  A1 CC145D00   MOV     EAX, DWORD PTR DS:[0x5D14CC]
  00420B3B  |.  33C4          XOR     EAX, ESP
  00420B3D  |.  898424 DC0200>MOV     DWORD PTR SS:[ESP+0x2DC], EAX
  00420B44  |.  53            PUSH    EBX
  00420B45  |.  55            PUSH    EBP
  00420B46  |.  56            PUSH    ESI
  00420B47  |.  57            PUSH    EDI
  00420B48  |.  8BF9          MOV     EDI, ECX

  那么,接下来的分析任务交给你了,一切都由你来发现
至于自动更新,可以在update.exe跟进,在段首下断跟一下就知道了,我是这么搞的.在段首XOR EAX,EAX   RET

  
特别提醒:关于里面验证成功就是注册版了.

评分

参与人数 19HB +22 THX +7 收起 理由
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
Jawon + 1
sjtkxy + 1 + 1
一路走来不容易 + 1
Soul1999 + 1
后学真 + 1
VipDongle + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
消逝的过去 + 1
飞刀梦想 + 1
冷亦飞 + 1
zxjzzh + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
xgbnapsua + 2
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
jaunic + 1
liugu0hai + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
hackysh + 1
lies + 1
vigers + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
Shark恒 + 6 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2015-3-24 16:12 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
vigers 发表于 2015-3-24 17:16 | 显示全部楼层

鲨鱼灌水,怎么处理
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Scar-疤痕 发表于 2015-3-24 22:41 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
hackysh 发表于 2022-2-9 16:02 | 显示全部楼层


[快捷回复]-感谢楼主热心分享!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
头像被屏蔽
别管我了行 发表于 2022-3-10 04:25 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
ghostxu 发表于 2022-4-13 11:00 | 显示全部楼层

奉上小小红包希望笑纳
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
小菜虫 发表于 2022-4-13 17:00 | 显示全部楼层

楼主辛苦了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
EMT 发表于 2022-4-13 17:19 | 显示全部楼层

谢谢分享
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
曾经沧海 发表于 2022-11-4 18:11 | 显示全部楼层

受教了  收藏学习一波
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表