zoukankan      html  css  js  c++  java
  • 手脱MoleBox(2.3.3-2.6.4)

    1.查壳
    2.找到OEP
    对第二个Call使用ESP定律,再跳转后的位置进入第一个Call,这里就是OEP了,在这里直接dump的话会失败,那是因为MoleBox壳对IAT进行二次跳转,我们先在OEP位置设置软件断点;
    3.手动修复IAT
    我们数据窗口跟随到这个加载系统函数的地址就是IAT;
    我们看到有部分IAT被隐藏到了其它位置,我们使用硬件写入断点,从新运行此程序,找到写入位置;
    我们通过硬件写入断点找到IAT被写入的位置,我们从这单步向下,找到使IAT变化的语句,在语句上下硬件执行断点,删除硬件写入断点(因为我们必须要找到第一次加密IAT表的位置,所以要下硬件执行断点),从新运行程序;
    我们NOP掉这条指令,删除硬件执行断点,然后恢复OEP上的软件断点,运行;
    这次IAT表就能够被完整加载,我们这时在dump下再修复IAT表就能正常运行;
    在脱壳时,我们要去掉重建输入表;
    成功运行;
    4.总结
    在进行MoleBox脱壳时,OEP都是能够正常找到,重点在MoleBox壳对IAT表做了跳转,将IAT的函数指向其它地址,再通过其它地址指向函数,所以,我们通过系统函数找到IAT表的位置,通过硬件写入断点追踪到写入跳转的位置,将跳转代码nop掉,就能完整加载IAT表了(注:我们要找到第一个写入跳转的时候,所以,还有在代码上下硬件执行断点);







  • 相关阅读:
    第三周
    第二周
    第一周
    jenkins实用
    codis 部署和测试
    openssl心脏出血漏洞修复
    shell自动发布脚本
    codis部署安装及性能测试
    redis 数据的恢复测试
    对reids 服务器性能测试
  • 原文地址:https://www.cnblogs.com/HOPEAMOR/p/11981180.html
Copyright © 2011-2022 走看看