手动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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例

    接口测试用例怎么写?一文1600字教你写一个优秀的接口测试的测试用例一 用例设计 11 接口测试概念接口测试 测试系统间接口的一种测试 测试的对象主要是接口 主要是测试外部系统与所测系统之间以及内部系统之间的交互点 2 接口测试方法 a 可以通过开发脚本代码进行测试 b 可以通过开源免费的接口调用调试工具测试 如 Postman 等 c 可以通过 App 手动测试 结合抓包工具分析 如 Fillder Charles 等 3 接口测试范围接口范围包括 一 被测项目中同层之间的接口 如 DAO 层 Service 层 一个接口调用了其他的接口 二 外部系统与系统之间

    2025年6月21日
    2
  • rabbit mq exchange_exchange设置公司邮箱

    rabbit mq exchange_exchange设置公司邮箱上一篇,我们介绍了rabbimtmq的简单工作队列的使用方式,即生产者和消费者之间直接通过绑定相同的workqueue进行消息的发送和接收,如果业务逻辑比较简单,这样的方式也是可以用的,但在实际工作中,实际的业务场景远远比这个复杂,而且需要更加细粒度的对消息进行进行分发和接收,这就需要用到rabbitmq的另外一个组件exchange;顾名思义,exchange在rabbitmq中翻译为交换机…

    2022年10月3日
    1
  • html发布页,发布页入口.html

    html发布页,发布页入口.html发布页入口$axure.utils.getTransparentGifPath=function(){return’resources/images/transparent.gif’;};$axure.utils.getOtherPath=function(){return’resources/Other.html’;};$axure.utils.getReloadPat…

    2022年5月26日
    119
  • 从原理上搞定编码– Base64编码「建议收藏」

    从原理上搞定编码– Base64编码「建议收藏」开发者对Base64编码肯定很熟悉,是否对它有很清晰的认识就不一定了。实际上Base64已经简单到不能再简单了,如果对它的理解还是模棱两可实在不应该。大概介绍一下Base64的相关内容,花几分钟时间

    2022年8月2日
    5
  • 回到顶部

    回到顶部

    2021年6月5日
    102
  • java解析zip文件_java解压zip文件

    java解析zip文件_java解压zip文件编写Filter/***GZIP处理Filter*/@WebFilter(filterName=”httpServletGzipFilter”,urlPatterns=”/”)publicclassHttpServletGzipFilterimplementsFilter{@Overridepublicvoiddestroy(){}…

    2022年9月7日
    6

发表回复

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

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