zoukankan      html  css  js  c++  java
  • 破解之脱壳练习

    0X01    初体验

    作业一:??(OD入口和区段都很迷)  exeinfo下界面显示 UPX

    作业二:e语言  (界面显示是:nspack(我也不知道这是什么))  exeinfo区段信息没什么用,都被修改过了

    作业三:VMP   

    问题:od怎么看区段信息.....界面稍有点复杂

               要了解win32API

    0X02      再分析

    作业一:

    (1)Exeinfo

     UPX -> Markus & Laszlo ver. [      ] <- from file. [ ! Modified ! ] ( sign like UPX packer ) 

    故可以确定为是UPX壳

    (2)  手脱UPX壳

    ★ 新知识   ESP定律

    ESP定律从我理解来说,就是程序开始时有个PUSHAD指令来保存所有寄存器状态,PUSHAD指令就像是大括号,有PUSH就有POP,两者共同的特点就是修改了ESP寄存器的值,所以我们需要在被修改的值上下硬件断点,来找到POP指令的位置,找到POP后就离原本的程序OEP不远了

    第一条指令就是pushad,这显然不是普通程序应该有的第一条指令,pushad保存当前的上下文,即把寄存器的值存到堆栈中。

    pushad后,可以看到堆栈中的内容正是之前的各个寄存器的值,其中栈顶保存的是EDI的值。栈顶的地址存储在ESP中。如果程序要正常运行,必定要从栈中取回这些值,因此可以到栈顶的内容表示的地址去看看会进行什么操作。

     

    练习链接,感兴趣自取。

    链接:https://pan.baidu.com/s/1K8nPCIefj8NwBuaXCXDYJQ
    提取码:lgdd

  • 相关阅读:
    SQL Server sql 操作
    MYSQL获取自增ID的四种方法
    Mysql自增字段
    三种JDBC批量插入编程方法的比较
    C3P0连接池使用小结
    数据库连接池 c3p0 demo 代码和分析
    Eclipse 安装对 Java 8 的支持
    Java读取Properties文件的六种方法
    常备软件及必要配置
    HBase-存储-概览
  • 原文地址:https://www.cnblogs.com/blazarstar/p/12892640.html
Copyright © 2011-2022 走看看