飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 22095|回复: 31

[分享] Baymax Patch Tools 之 DFX 破解方案

  [复制链接]

该用户从未签到

发表于 2016-5-20 04:45:03 | 显示全部楼层 |阅读模式
先贴程序启动验证的关键位置:


  1. 013095A1  |> \83BB 40CB0100 00         CMP     DWORD PTR DS:[EBX+1CB40], 0
  2. 013095A8  |.  74 2B                    JE      SHORT DFX.013095D5               ;  不能跳
  3. 013095AA  |.  83BB 20CB0100 0A         CMP     DWORD PTR DS:[EBX+1CB20], 0A
  4. 013095B1  |.  75 22                    JNZ     SHORT DFX.013095D5               ;  不能跳
  5. 013095B3  |.  C783 E4CA0100 02000000   MOV     DWORD PTR DS:[EBX+1CAE4], 2      ;  全局变量 等于2代表注册
  6. 013095BD  |>  33C0                     XOR     EAX, EAX                         ;  kernel32.BaseThreadInitThunk
  7. 013095BF  |.  5B                       POP     EBX                              ;  kernel32.76F7338A
  8. 013095C0  |.  8B8C24 10100000          MOV     ECX, DWORD PTR SS:[ESP+1010]
  9. 013095C7  |.  33CC                     XOR     ECX, ESP
  10. 013095C9  |.  E8 A2210500              CALL    DFX.0135B770
  11. 013095CE  |.  81C4 14100000            ADD     ESP, 1014
  12. 013095D4  |.  C3                       RETN
  13. 013095D5      8B93 F8FA0200            MOV     EDX, DWORD PTR DS:[EBX+2FAF8]
  14. 013095DB  |.  8D4C24 0C                LEA     ECX, DWORD PTR SS:[ESP+C]
复制代码


这里很容易提出一个特征码来
程序码:83 BB 40 CB 01 00 00 74 2B 83 BB 20 CB 01 00 0A 75 22 C7 83 E4 CA 01 00 02 00 00 00

但由于特征码中有对象成员的偏移值,下一版中可能会发生变化,所以我们这里用 ?? 来替代:
特征码: 83 BB ?? ?? ?? ?? 00 74 2B 83 BB ?? ?? ?? ?? 0A 75 22 C7 83 ?? ?? ?? ?? 02 00 00 00

我们的补丁方法就是:
013095A8  74 2B  ==> 74 00
013095B1  75 22  ==> 75 00

所以我们的修改数据为:
补丁码:83 BB ?? ?? ?? ?? 00 74 00 83 BB ?? ?? ?? ?? 0A 75 00 C7 83 ?? ?? ?? ?? 02 00 00 00


第一种破解方案:修改代码(偏移补丁)

01.jpg


第二种破解方案:修改寄存器(异常中断补丁)

我们还用特征码来定位,
013095A1  |> \83BB 40CB0100 00  CMP     DWORD PTR DS:[EBX+1CB40], 0
013095A8  |.  74 2B                         JE      SHORT DFX.013095D5               ;  该指令相对于特征码的偏移为 7
013095AA  |.  83BB 20CB0100 0A   CMP     DWORD PTR DS:[EBX+1CB20], 0A
013095B1  |.  75 22                        JNZ     SHORT DFX.013095D5               ;  该指令相对于特征码的偏移为 16

设置第一项: 偏移= 7,ZF = 0
伪码为:ZF:0,1,0:0
02-1.jpg

设置第二项: 偏移= 16,ZF = 1
伪码为:ZF:0,1,0:1
02-2.jpg


第三种破解方案:修改内存数据(异常中断补丁)

我们把内存 DWORD PTR DS:[EBX+1CB40] 修改为 1,使其不跳。
// 补丁地址相对于特征码偏移=0
伪码为:EBX,1CB40:0,1,0:I,D,1
3-1.jpg

我们把内存 DWORD PTR DS:[EBX+1CB20] 修改为 A
// 补丁地址相对于特征码偏移=9
伪码为:EBX,1CB20:0,1,0:I,D,A
3-2.jpg


第四种方法:NOP掉该指令(异常中断补丁)

第一组伪码为:EIP:0,1,0:NOP
注:这里的NOP不是修改代码,而是将EIP进行加分,跳过该行代码并执行下一行。
4-1.jpg

第二组伪码为:EIP:0,1,0:NOP
4-2.jpg


第五种方法:直接修改EIP(异常中断补丁)

我们知道若两个关键调整若失败后会调整到地址 013095D5,该地址相对于特征码偏移为 013095D5 - 013095A1 = 0x34,即十进制的52
我们希望的是进程可以执行到地址 013095B3,去完成赋值, 013095D5 - 013095B3 = 0x22,即十进制的34
由于是往上调,地址变小,所以我们应该填负的34。即十六进制 -22 (界面所有看填写数据的地方非特殊说明均为十六进制),这里和CPU寻址不同,CPU会从该行代码的下一行开始算偏移。
这次我们试一下 INT3 的断点类型
伪码为:EIP:0,1,1:FFFFFFDE
5-1.jpg

我们制作调试吧补丁,打开DebugView来看一下信息:
5-2.jpg



OK,条条大道通罗马,Baymax tools 又为大家扩展了一些修改思路及方法,只要想得到,就可以做的到。


Baymax Patch Tools v1.6 Beta 下载
https://www.chinapyg.com/thread-83083-1-1.html

评分

参与人数 4威望 +52 飘云币 +48 收起 理由
lucky_789 + 20 + 20 功夫不负有心人
expasy + 4 很给力!
small-q + 20 + 20 很给力!
NoNameX2016 + 8 + 8

查看全部评分

PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-5-30 20:53
  • 签到天数: 2047 天

    [LV.Master]伴坛终老

    发表于 2016-5-20 05:45:57 | 显示全部楼层
    谢谢老大的教程。。。。又学到一种新的分析思路呀。。。。。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-7 15:25
  • 签到天数: 442 天

    [LV.9]以坛为家II

    发表于 2016-5-20 07:23:03 | 显示全部楼层
    又是一个不眠夜,校长太辛苦了!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2023-4-24 08:03
  • 签到天数: 489 天

    [LV.9]以坛为家II

    发表于 2016-5-20 08:02:49 | 显示全部楼层
    校长,打包个DOC文档,方便收藏。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-3-24 23:08
  • 签到天数: 469 天

    [LV.9]以坛为家II

    发表于 2016-5-20 08:54:57 | 显示全部楼层
    学习了一下,感觉很有收获
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    昨天 06:36
  • 签到天数: 2155 天

    [LV.Master]伴坛终老

    发表于 2016-5-20 09:02:12 | 显示全部楼层
    老大真牛逼呀,膜拜ING。。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-4-5 00:33
  • 签到天数: 90 天

    [LV.6]常住居民II

    发表于 2016-5-20 11:05:22 | 显示全部楼层
    为什么我添加补丁特征数据错误。您输入的数据错误,软件是加壳的。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-3-20 15:56
  • 签到天数: 617 天

    [LV.9]以坛为家II

    发表于 2016-5-20 16:14:01 | 显示全部楼层
    校长威武!太辛苦了!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-7-9 18:21
  • 签到天数: 948 天

    [LV.10]以坛为家III

    发表于 2016-5-20 19:13:33 | 显示全部楼层
    校长,什么时候发布神器啊,等着试用
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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