upx脱壳日记[通俗易懂]

upx脱壳日记[通俗易懂]一、静态方法upx-d有时候可能会失败,需要切换使用正确的UPX版本。Windows下内置对各UPX版本的第三方图形化界面UPXShell工具,可以方便的切换版本,通过go按钮,可以切换upx加壳版本与脱壳版本二、动态方法(手脱)虽然UPX本身可以脱壳,但是UPX是基于加壳后可执行文件内存储的标识来查找并操作的,由于UPX是开源的,软件保护者可以随意修改这些标识,从而导致官方标准版本的UPX脱壳失败。因为UPX中可以改动的地方太多,所以人们在这种情况下一般采用动态脱壳x86的..

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

一、静态方法

upx -d

有时候可能会失败,需要切换使用正确的UPX版本。Windows下内置对各UPX版本的第三方图形化界面UPXShell工具,可以方便的切换版本,通过go按钮,可以切换upx加壳版本与脱壳版本

   upx脱壳日记[通俗易懂]upx脱壳日记[通俗易懂]

二、动态方法(手脱)

虽然UPX本身可以脱壳,但是UPX是基于加壳后可执行文件内存储的标识来查找并操作的,由于UPX是开源的,软件保护者可以随意修改这些标识,从而导致官方标准版本的UPX脱壳失败。因为UPX中可以改动的地方太多,所以人们在这种情况下一般采用动态脱壳

x86的汇编指令pushad可以轻松将所有寄存器一次性压入栈,UPX使用了这样的方式,被形象的称为“保护现场”,所以将这里的下一步执行后,在esp下硬件读取断点,再次调用就是esp返回的时候,我们直接就可以回到原来的程序执行流

执行过程:

先F8到pushad的下一步,然后在寄存器那边右键ESP,”HW break [ESP]”下硬件断点

upx脱壳日记[通俗易懂]

设置完成后,F9运行,再次中断到一个地址

upx脱壳日记[通俗易懂]

实际上这是一个将栈空间向上清零0x80长度的循环,并不是程序真实代码,后面有一个向前的大跳转,从0x430638跳到0x404ddc,这样就跳到原程序的位置

upx脱壳日记[通俗易懂]

单击这一按jmp指令,然后F4,使程序跳到此指令上执行,然后F8,此时看起来已经很正常了

upx脱壳日记[通俗易懂]

然后对程序dump。在OD中选择“插件”-“OllyDump”-“脱壳正在调试的进程”,然后单击获取EIP作为OEP,再单击脱壳,保存后可完成脱壳

upx脱壳日记[通俗易懂]

此时IDA中和程序执行都已正常

upx脱壳日记[通俗易懂]

upx脱壳日记[通俗易懂]

 

 

 

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

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

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


相关推荐

  • 工作流引擎Activiti使用总结[通俗易懂]

    工作流引擎Activiti使用总结[通俗易懂]转载自:工作流引擎Activiti使用总结1.简单介工作流引擎与Activiti对于工作流引擎的解释请参考百度百科:工作流引擎1.1我与工作流引擎在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用的工作流引擎是公司一些牛人开发的(据说是用一个开源的引擎修改的),名称叫CoreFlow;功能相对Activiti来说比较弱,但是能满足日常的使用,当然也有不少的问…

    2022年7月11日
  • it领域的摩尔定律_裴蜀定理

    it领域的摩尔定律_裴蜀定理每十八个月,计算机等IT产品的性能会翻一番;或者说相同性能的计算机等IT产品,每十八个月价钱会降一半。

    2022年8月6日
  • QR分解_矩阵谱分解例题

    QR分解_矩阵谱分解例题病态矩阵测量是人类对居住的这个世界获取空间认识的一种手段,也是认识世界的一种活动。因此,在参与测量活动中,自然会遇到认识活动中的三种情况:a.很容易就发现了不同之处而将甲乙两事物区分开来;b.很容易

    2022年8月6日
  • mysql主从复制周期_Mysql主从复制[通俗易懂]

    mysql主从复制周期_Mysql主从复制[通俗易懂]Mysql主从复制背景:Mysql可以实现主从复制,在学习了Mysql主从复制后,将一些如何主从复制过程记录下来,供以后复习使用。准备:在做Mysql的主从复制前需要做一些准备工作:1、同步时间做主从的服务器的时间需要同步,不然会出问题。命令:ntpdateip(ntpdate命令需要先安装ntpdate)2、版本一致做主从的Mysql服务需要版本一致,或者从服务器的版本高于主服务器。主从复制…

    2022年8月13日
  • idea 2021.5激活码永久【在线注册码/序列号/破解码】

    idea 2021.5激活码永久【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
  • 深入理解C语言指针

    深入理解C语言指针一、指针的概念要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。1.1、变量和地址先写一段简单的代码:voidmain(){ intx=10,inty=20;}这段代码非常简单,就是两个变量的声明,分别赋值了10、20。我们把内存当做一个酒店,而每个房间就…

    2022年6月22日

发表回复

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

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