飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 7021|回复: 5

[分享] Baymax 大白使用技巧之异常中断补丁

[复制链接]
  • TA的每日心情
    无聊
    2021-4-13 19:54
  • 签到天数: 1111 天

    [LV.10]以坛为家III

    发表于 2016-7-4 16:56:26 | 显示全部楼层 |阅读模式
    本帖最后由 PYG官方论坛 于 2016-7-5 10:04 编辑

    今天遇到一款加壳软件使用大白【Baymax Patch Tools】居然没成功 于是有了下文~  这里分享下思路  恕不提供程序 长话短说。
    程序验证的思路是在启动时读取网页上指定内容(真假)来决定其功能是否启动。

    破解的方法也就很简单了:


    0041FAD0    A3 604CB700     |mov dword ptr ds:[0xB74C60],eax \\\\这里只需把eax指向的内容改为“真”即可,它从网页解密出来的文本内容是“假”
    0041FAD5    8B5D F4         |mov ebx,dword ptr ss:[ebp-0xC]
    0041FAD8    E8 0E25FEFF     |call XXX.00401FEB
    0041FADD    53              |push ebx
    0041FADE    51              |push ecx
    1111111111.png


    22222.png

    于是我的补丁方案也出来了:

    33333.png


    大家仔细看看也没什么问题 然而就是没效果,在OD里测试却是没问题的。
    这里我也hook了相应的函数  同样还是无济于事。

    于是生成调试补丁   用DebugView测试却也找不出原因来:

    444444.png


    于是只要请教@Nisy 校长了 (⊙﹏⊙)b(⊙﹏⊙)b(⊙﹏⊙)b

    哈哈哈哈 发给校长试试 果然校长不愧是校长 马上就找出问题来了。。

    校长三言两语就解释完了 而我还在懵比中测试。最终测试确实如此!!!▄︻┻┳═一


    总结来说 就是对于需要patch的地址如果是在线程中(非程序的主线程)执行的程序而言  设置硬件断点是无效的  而默认的【智能】选择的是硬件断点。
    此时必须改为INT3断点  而INT3 需要程序解码后 设置代码为CC  所以需要hook。
    而如果有的程序采用默认的【智能】硬件断点能成功的话  就不需要hook也能破解加壳程序。

    5555.png

    希望更多的坛友来发扬光大咱PYG的大白工具!
    最后还是那句话 :
    大白真是好 不怕有壳 还能做通杀补丁~
    大白真是好 不怕有壳 还能做通杀补丁~
    大白真是好 不怕有壳 还能做通杀补丁~



    评分

    参与人数 3威望 +48 飘云币 +48 收起 理由
    0xcb + 8 + 8 实践出真知呀!
    lucky_789 + 20 + 20 赞一个!
    tree_fly + 20 + 20 PYG有你更精彩!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2016-11-3 14:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-7-4 17:03:39 | 显示全部楼层
    对于有壳的程序,大白在异常断点补丁中若采用偏移地址方式是无需设置API HOOK等待解码时机的,因为硬件断点坐等进程执行即可。而Baymax中的异常断点位于主线程,当新线程创建时并未将该硬件断点设置给新线程,导致若断点地址不在主线程的时候将不会触发中断,补丁无效。解决方案就是设置INT3断点,INT3断点就不再受到线程的约束,由于程序带壳所以需要等待解码后在进行CC断点的设置,所以需要API HOOK。

    本帖中的目标程序验证点就位于新线程中,所以我们用硬件断点无法触发,只能用INT3断点来实现破解。

    评分

    参与人数 1威望 +4 收起 理由
    892644330 + 4 大白大白就是白~

    查看全部评分

    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-3 14:57
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-7-4 17:07:01 | 显示全部楼层
    每个线程对应4个硬件断点  Baymax 只设置了主线程的硬件断点 所以新线程调用那个代码地址的时候硬件断点就中断不下来了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-4-18 11:57
  • 签到天数: 1513 天

    [LV.Master]伴坛终老

    发表于 2016-7-4 17:33:27 | 显示全部楼层
    也来个API HOOK技巧的文章给我们真正的大白学习了,大神的教程一略而过,看不懂。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 00:07
  • 签到天数: 2095 天

    [LV.Master]伴坛终老

    发表于 2016-7-4 22:39:40 | 显示全部楼层
    学习了,真是受益匪浅
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-18 17:41
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    发表于 2016-7-5 21:26:45 | 显示全部楼层
    学习学习,感谢分享!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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