zoukankan      html  css  js  c++  java
  • 学习:脱壳之内存执行寻找OEP

    前言:类似排除法,如果一开始知道OEP的地址话,那么成功脱壳的几率应该百分之百,如果不知道,那自己尝试的时候,还是需要检查检查

    1、直接加载入OD,打开内存窗口观察,发现是UPX的壳

    内存映射, 条目 22
    地址=00401000
    大小=00008000 (32768.)
    属主=CRACKME_ 00400000
    区段=UPX0
    包含=输出表
    类型=Imag 01001002
    访问=R
    初始访问=RWE

    内存映射, 条目 23
    地址=00409000
    大小=00001000 (4096.)
    属主=CRACKME_ 00400000
    区段=UPX1
    包含=代码
    类型=Imag 01001002
    访问=R
    初始访问=RWE

    内存映射, 条目 24
    地址=0040A000
    大小=00001000 (4096.)
    Owner=CRACKME_ 00400000
    Section=.rsrc
    Contains=data,imports,resources
    Type=Imag 01001002
    Access=R
    Initial access=RWE

    2、知道了UPX1是代码段,那么这个程序在运行的时候肯定不会把自己的代码段UPX1进行解密然后再进行写入,那么值得怀疑的区段就只有.rsrc 和 UPX0,那么直接给UPX0下内存断点,原因是UPX1区段解密完会在别的区段进行写入解密完之后的代码,所以当访问的时候,也就是解密的时候的代码,那么直接F9运行,发现成功来到OEP

  • 相关阅读:
    PL/SQL 记录集合IS TABLE OF的使用
    PL/SQL 触发器简介
    plsql 显式游标
    MySQL的基本知识 -- 命令
    排序算法--桶排序
    在C++中实现字符串分割--split
    第一篇献给小驰驰
    解决windows管理员已阻止你运行此应用问题
    centos 7.3 快速安装ceph
    python中int的功能简单介绍
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12096433.html
Copyright © 2011-2022 走看看