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

  • 相关阅读:
    linux环境变量
    linux make configure make
    摘自(http://www.ruanyifeng.com/blog/2011/07/linux_load_average_explained.html)
    linux eaccelerator
    linux du df ls
    linux phpize
    mysql 分页
    mysql 执行计划和慢日志记录
    mysql 添加/删除列(column)
    mysql 索引
  • 原文地址:https://www.cnblogs.com/blazarstar/p/12892640.html
Copyright © 2011-2022 走看看