飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6449|回复: 12

[原创] 对BayMax大白的多层指针补丁的理解

[复制链接]
  • TA的每日心情
    开心
    2024-4-8 22:23
  • 签到天数: 110 天

    [LV.6]常住居民II

    发表于 2016-8-12 20:39:48 | 显示全部楼层 |阅读模式
    本帖最后由 Bu弃 于 2016-8-12 20:48 编辑

    今天碰到多层指针,不知道用大白(●—●)如何实现,所以问了下Nisy校长,@Nisy 根据校长的解释,还有自己的一些理解,写了这篇帖子。有错误的地方,欢迎指正。


    首先描素下我遇到的问题。鉴于有时候紧张就语言描素不清楚,所以就上一张图。相信你们更加喜欢这种方式。


    QQ截图20160812195230.png
                 (图1)
    图上说明 ESP 的地址为 018FC44 而方框处相对ESP的偏移是 3C,右键跟随过去后,发现里面的值是一个地址。而这个地址就是我们最终需要改动数据的地址。


    下面让我们看看如何用大白(●—●)实现这个功能吧。


    我们一层一层的来分析。首先,找到ESP的地址。然后+上偏移3C。在OD里的是这样的
    QQ截图20160812200100.png
             (图2)
    椭圆标记的就是ESP的地址,方框里标记的就是ESP+3C。 我们看到,ESp+3C里的内容也是地址。那么大白里的设置,寄存器我们可以确定了,偏移我们也能确定了,也就是 ESP,3C。


    接下来继续走。像这种情况,如果我们只在大白设置里填ESP,3C 。那么就是会这样修改(假如我们想改成1122)
    QQ截图20160812201054.png
                (图3)
    这样就会直接把ESP+3C里面的地址修改,原地址内容并为修改。就像C语言里的交换两个数的位置,Change(int x,int y)我们知道,这样是不能实现交换功能的。正确的方式应该是这样 Change(int *x,int *y)同理,这里也是,不能实现修改功能。


    那么我们应该怎么修改呢,根据校长的解答,我们只需在后面加个0即可。也就是ESP,3C,0


    这样就表示,取当前ESP+3C里的值作为地址使用,而不是作为代码使用。这样就相当于我们在堆栈里右键数据窗口跟随。


    QQ截图20160812201848.png
               (图4)
    接下来我们又发现,右键数据窗口跟随里面的值还是地址。根据上面所说的,我们只需再后面再加个0即可,也就是最终的设置 ESP,3C,0,0。


    这样我们就到了我们需要补数据的地方


    QQ截图20160812202229.png
               (图5)
    接下来我们就可以愉快的嘿嘿嘿了。


    总结:
        1、到最后的ESP,3C,0,0可以用指针这样描述 *( *(*(ESP+3C))),  *(ESP+3C)得到的是图2的内容。  *(*(ESP+3C))得到的是图4的内容,也就是反汇编跟随后的内容。*( *(*(ESP+3C))) 得到的是图5最终的内容(PS:这里是这样解释吧。多层指针,把自己都弄晕了。)
        2、在寄存器后面加个0,就是取这里面的数据内容作为地址使用。


    好了,就到这里了。谢谢大家观看。有错误的地方希望大家指出来,我也好改正,这也是种学习,不是么?


    PS:感谢校长开发的工具,让我们能更好的破解,大白(●—●)真的很强大,6的飞起。校长辛苦了。
    再次PS: 有时候大白没效果,可以试试把断点类型改为int3断点哦。

    评分

    参与人数 7威望 +60 飘云币 +52 收起 理由
    wjzzhtgp + 4 感谢发布原创作品!
    hyj7229 + 4 感谢发布原创作品!
    kungbim + 4 PYG有你更精彩!
    我的宝宝 + 4 PYG有你更精彩!
    gagmeng + 20 + 20 赞一个!
    0xcb + 8 + 8 老司机带带我:D
    天上飞的鱼 + 20 + 20 愉快的嘿嘿嘿亮了.表哥很精彩~

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2024-4-8 22:23
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2016-8-12 20:41:14 | 显示全部楼层
    按照GG表哥的国际惯例。自己的沙发自己做。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-7-9 00:31
  • 签到天数: 213 天

    [LV.7]常住居民III

    发表于 2016-8-12 20:54:03 | 显示全部楼层
    坐个地板支持Bu弃表哥~

    点评

    表哥别闹  详情 回复 发表于 2016-8-12 21:54
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 963 天

    [LV.10]以坛为家III

    发表于 2016-8-12 21:06:47 | 显示全部楼层
    感谢Bu弃表哥分享

    点评

    表哥你也别闹  详情 回复 发表于 2016-8-12 21:54
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-8 22:23
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2016-8-12 21:54:18 | 显示全部楼层
    天上飞的鱼 发表于 2016-8-12 20:54
    坐个地板支持Bu弃表哥~

    表哥别闹
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-8 22:23
  • 签到天数: 110 天

    [LV.6]常住居民II

     楼主| 发表于 2016-8-12 21:54:43 | 显示全部楼层
    a583091790 发表于 2016-8-12 21:06
    感谢Bu弃表哥分享

    表哥你也别闹
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-9-29 15:05
  • 签到天数: 114 天

    [LV.6]常住居民II

    发表于 2016-8-12 23:25:02 | 显示全部楼层
    大白的补丁规则真的好方便,不过后面加个【,0】,个人感觉虽然成为自己独有的语法,但是不够优雅,建议可以如果把这些规则做一些脚本的绑定,或许更加灵活好玩
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-1-26 10:11
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2016-8-12 23:43:27 | 显示全部楼层
    不弃小表弟求带啊
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-9-8 00:02
  • 签到天数: 256 天

    [LV.8]以坛为家I

    发表于 2016-8-13 00:48:01 | 显示全部楼层
    不错,多层指针。。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 20:15
  • 签到天数: 962 天

    [LV.10]以坛为家III

    发表于 2016-8-13 09:30:12 | 显示全部楼层

    向楼主学习!向楼主致敬!
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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