UPX脱壳总结

UPX脱壳总结我近期研究了一下UPX壳的脱壳方法,下面给出脱壳示例:UPX作为一款元老级PE加密壳,在以前的那个年代盛行,著名病毒【熊猫烧香】就是使用这款加密壳。现在我们一起来脱UPX壳来揭开它的神秘面纱。首先,PEiD载入含UPX壳的程序,结果如下:UPX0.89.6-1.02/1.05-1.24->Markus&Laszlo然后用OD载入,OEP如下:

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

我近期研究了一下UPX壳的脱壳方法,下面给出脱壳示例:

UPX作为一款元老级PE加密壳,在以前的那个年代盛行,著名病毒【熊猫烧香】就是使用这款加密壳。
现在我们一起来脱UPX壳来揭开它的神秘面纱。
首先,PEiD载入含UPX壳的程序,结果如下:

UPX脱壳总结

UPX脱壳总结

UPX 0.89.6 – 1.02 / 1.05 – 1.24 -> Markus & Laszlo

然后用OD载入,OEP如下:

UPX脱壳总结

0040E8C0 >  60              PUSHAD
0040E8C1    BE 15B04000     MOV ESI,UPX.0040B015
0040E8C6    8DBE EB5FFFFF   LEA EDI,DWORD PTR DS:[ESI+FFFF5FEB]
0040E8CC    57              PUSH EDI
0040E8CD    83CD FF         OR EBP,FFFFFFFF
0040E8D0    EB 10           JMP SHORT UPX.0040E8E2
0040E8D2    90              NOP
0040E8D3    90              NOP
0040E8D4    90              NOP
0040E8D5    90              NOP
0040E8D6    90              NOP
0040E8D7    90              NOP

然后单步跟踪……直到大跳转:

UPX脱壳总结UPX脱壳总结

UPX脱壳总结

0040EA0F  – E9 B826FFFF     JMP UPX.004010CC
0040EA14    0000            ADD BYTE PTR DS:[EAX],AL
0040EA16    0000            ADD BYTE PTR DS:[EAX],AL
0040EA18    0000            ADD BYTE PTR DS:[EAX],AL
0040EA1A    0000            ADD BYTE PTR DS:[EAX],AL
0040EA1C    0000            ADD BYTE PTR DS:[EAX],AL
0040EA1E    0000            ADD BYTE PTR DS:[EAX],AL
0040EA20    0000            ADD BYTE PTR DS:[EAX],AL

跟踪到这里,发现后面均为填充位,于是跟进跳转:

004010CC    55              PUSH EBP
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]               ; kernel32.GetCommandLineA
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT UPX.004010FC
004010E1    56              PUSH ESI
004010E2    FF15 F4644000   CALL DWORD PTR DS:[4064F4]               ; USER32.CharNextA
004010E8    8BF0            MOV ESI,EAX
004010EA    8A00            MOV AL,BYTE PTR DS:[EAX]

发现熟悉的Win32API了,程序入口就在这里了。

果断使用OllyDump,

UPX脱壳总结

EIP作为OEP,脱壳,

UPX脱壳总结

将新PE程序保存为aaa.exe,

UPX脱壳总结

然后运行aaa.exe,

UPX脱壳总结

结果与脱壳前一样,脱壳成功!

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

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

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


相关推荐

  • 重磅!2021年国内Java培训机构排名十强出炉啦!

    重磅!2021年国内Java培训机构排名十强出炉啦!在IT行业当中,Java是最受欢迎的编程语言之一,作为最早出现的编程语言至今都没有倒下,可以说是YYDS!近年来学习Java的小伙伴也是越来越多,通过参加培训的方式来学习Java技术是最快最有效的方法。如今Java培训机构多如牛毛,到底该怎么选呢?下面小编就给大家发布2021年Java培训机构排名十强的名单来供大家参考:1、动力节点(http://www.bjpowernode.com/)动力节点是Java培训界“口口相传的Java黄埔军校”,成立至今12年,专注Java培训事业,为学员提供更.

    2022年7月7日
    54
  • pycharm的python环境配置_怎么安装pycharm及环境变量配置

    pycharm的python环境配置_怎么安装pycharm及环境变量配置1.python安装(目前我用的是Anaconda环境,够用,等遇到问题没办法了再装python,然后再写这部分内容。看到这的朋友要谨慎些,别被我误导了)2.Pycharm环境变量配置点击createnewproject进入项目配置页面:或者:即:Pycharm自动加载的环境为虚拟环境,不建议初学者使用,因为后期很多安装的模块和包只能在虚拟环境中使用。点击上图编号3之后会进入下图显示的内容,我们选择左侧systeminterpreter,在显示的路径中…

    2022年8月29日
    0
  • msfconsole模块_msfconsole下载

    msfconsole模块_msfconsole下载Msfconsole提供了一个一体化的集中控制台。通过msfconsole,你可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的接口,比如nmap,sqlmap等,可以直接在msfconsole里面使用。在启动MSF终端之后,可以首先输入help命令列出MSF终端所支持的命令列表,包括核心命令集和后端数据库命令集。对于其中的大部分命令,你可以输入help[COMMAND],进一步查看该命令的使用帮助信息。一、Msfconso

    2022年9月6日
    3
  • html段落空格怎么写,html怎么写空格

    html段落空格怎么写,html怎么写空格html写空格的方法:1、通过键入“空格”键在html网页中输入一个空格;2、通过空格字符代码“”在html中输入多个空格即可。本文操作环境:windows7系统、HTML5版、DellG3电脑。HTML中如何键入空格?一个空格的键入在html网页中一个空格,我们可以键入“空格”键即可实现。多个html空格字符如果在html中想实现多个空格间隙,如果是键入多个“空格”键,但最终也只…

    2022年6月17日
    32
  • java代码自动生成[通俗易懂]

    Java代码自动生成(优化封装版)一、前言      最近自己做了个项目,为了提升开发效率,节约不必要的开发时间,特意花时间优化了下代码自动生成工具。成果不错,效率提高了不少,空闲时间特意写下这篇文章,希望对大家有所帮助。PS文章底部是我的代码下载链接,大家可以自行下载。 二、项目背景框架       本套生成工具是基于SpringMVC+MyBatis框架,同…

    2022年4月14日
    177

发表回复

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

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