手动UPX脱壳演示「建议收藏」

手动UPX脱壳演示「建议收藏」首先,用PEid打开加壳后的程序CrackmeUPX.exe,可以发现使用的是UPX壳。UPX壳是一种比较简单的压缩壳,只需要根据堆栈和寄存器的值进行调试,就能找到程序的正确入口点。当然,如果不怕麻烦的话,也可以全程单步调试,直到出现像正常程序的入口点一样特征的代码,这样就找到了入口点。用我爱激活成功教程版ollydbg打开CrackmeUPX.exe,可以看到第一条指令是pushad,这显…

大家好,又见面了,我是你们的朋友全栈君。

首先,用PEid打开加壳后的程序CrackmeUPX.exe,可以发现使用的是UPX壳。UPX壳是一种比较简单的压缩壳,只需要根据堆栈和寄存器的值进行调试,就能找到程序的正确入口点。当然,如果不怕麻烦的话,也可以全程单步调试,直到出现像正常程序的入口点一样特征的代码,这样就找到了入口点。

手动UPX脱壳演示「建议收藏」

 

用我爱激活成功教程版ollydbg打开CrackmeUPX.exe,可以看到第一条指令是pushad,这显然不是普通程序应该有的第一条指令。pushad保存当前的上下文,即把寄存器的值存到堆栈中。

手动UPX脱壳演示「建议收藏」

 

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

手动UPX脱壳演示「建议收藏」

 

在栈顶所在地址设置断点,执行到此处,发现是一个跳转指令,跳转到0x00401000。

手动UPX脱壳演示「建议收藏」

跳转后,发现出现的代码符合正常程序入口点的特征,那么正确的入口点应该就是0x00401000。基于此,进行脱壳并重命名为test.exe。

手动UPX脱壳演示「建议收藏」

 

用PEiD打开test.exe,可以看到已经没有壳了。至此,脱壳完成。

 

手动UPX脱壳演示「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161707.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java常见设计模式总结

    Java常见设计模式总结

    2021年10月5日
    37
  • 一阶惯性环节的性能分析——自动控制原理基础补充(二)

    一阶惯性环节的性能分析——自动控制原理基础补充(二)以前读书的时候学习自动控制原理,就是为了考试,各种相频幅频特性题咣咣做,一点都不含糊,但是实际代表什么意义一点都不知道。现在真是发现,这个东西有用得一批。这篇文章从一阶惯性环节为切入点,对自动控制原理进行一个简单的复习。还蛮喜欢博客里面写东西的,按照自己思路,按照逻辑一点一点往下,不像发文章八股文一样。1一阶惯性环节的bode图对于这个非常常见的一阶惯性系统而言,其关键指标就是截止频率。截止频率的定义:从频域响应的角度讲,当保持输入信号的幅度不变,改变频率使输出信号降至最大值的0.707倍

    2022年10月5日
    4
  • 《如何为Android Studio安装HAXM》「建议收藏」

    《如何为Android Studio安装HAXM》「建议收藏」Preface:1.IntelHAXM(HardwareAcceleratedExecutionManager),即英特尔硬件加速执行管理器(Intel HAXM)是一款硬件辅助虚拟引擎(管理程序)使用基于Intel(R)VirtualizationTechnology(VT)的硬件加速,因此需要CPU支持VT,而且仅限于IntelCPU。2.与英特尔And…

    2022年6月28日
    284
  • i386/i686/x86-64的区别

    i386/i686/x86-64的区别1.i386适用于intel和AMD所有32位的cpu.以及via采用X86架构的32的cpu.intel平台包括8086,80286,80386,80486,奔腾系列(1.2.3.4)、赛扬系列,PentiumD系列以及centrinoP-M,coreduo等.2.X86_64适用于intel的Core2Duo,CentrinoCore2Duo,andXe

    2022年5月22日
    59
  • c语言findstr 用法,常用批处理命令总结之Find和FindStr

    c语言findstr 用法,常用批处理命令总结之Find和FindStrfind 作用 从文件中收索字符串格式 find 参数 字符串 路径 文件名参数 V 显示所有未包含指定字符串的行 C 仅显示包含字符串的行数 N 显示行号 I 搜索字符串时忽略大小写 OFF LINE 不要跳过具有脱机属性集的文件 当文件中包含要查找的字符串时 将返回这个字符串所在位置的整行内容 默认情况下是区分大小写的 若想要不区分大小写就是用参数 i 有时候 我们的需求并

    2025年10月31日
    5
  • django的drf框架的优点_道德经的理解与感悟

    django的drf框架的优点_道德经的理解与感悟Django是基于Python编程语言开发的一套重量级的用于web开发的框架所谓web开发框架,就是基于网络通信原理,为了便于开发,对代码流进行了统一的封装和集成Django是对Python的封装,而DRF又在Django的基础上做了进一步的封装相较于Django,DRF更加适用于前后端分离的开发模式Django自带template模板,最终会生成一个html页面。而DRF通过序列化器和丰富的视图类,向服务器提交json格式的数据。…

    2025年8月2日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号