CTF-UPX脱壳加壳讲解;(详细版)

CTF-UPX脱壳加壳讲解;(详细版)在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了;这个是加壳状态下的;脱壳后~~~~~~~如何发现是加壳的呢?除了开头所描述的方法,还有第二种用ExeinfoPE软件查看附件信息;此时这个软件就提示我们这个附件是UPX加壳处理的;二.脱壳这里我只讲一种方法(因为我只会一种方法-.-)首先下载好打包好的UPX脱壳工具,解压下载好:讲一下用法吧在这个文件夹当中输入cmd进入;输入upx.exe-h有如下反应:

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

在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了;

这个是加壳状态的
这个是加壳状态下的;

脱壳后~~~~~~~

在这里插入图片描述

如何发现是加壳的呢?

除了开头所描述的方法,还有第二种 用Exeinfo PE 软件 查看附件信息;
在这里插入图片描述
此时这个软件就提示我们这个附件是UPX加壳处理的;

二. 脱壳

这里我只讲一种方法(因为我只会一种方法 -.-) 首先下载好打包好的UPX脱壳工具,

下载链接UPX脱壳

解压下载好:

讲一下用法吧

在这里插入图片描述
在这个文件夹当中输入 cmd 进入;

输入upx.exe -h 有如下反应:

在这里插入图片描述安装成功可以正常的使用了!

把需要加壳,去壳的文件拖入同一目录下:

输入加壳命令:upx sample_mal.exe :显示加壳成功。
在这里插入图片描述 使用脱壳命令:upx -d sample_mal.exe:提示脱壳成功。

在这里插入图片描述
补充一些其他的UPX命令

压缩可执行文件:UPX sample.exe
解压缩可执行文件:UPX -d sample.exe
列表:UPX -l sample.exe

测试压缩过的可执行文件:UPX -t sample.exe

显示版本号:upx -V (注意区分大小写)

显示软件许可声明:UPX -L

具体用法参考 UPX用法

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

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

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


相关推荐

  • volatile为什么不能保证原子性

    volatile为什么不能保证原子性首先要了解的是,volatile可以保证可见性和顺序性,这些都很好理解,那么它为什么不能保证原子性呢?可见性可见性与Java的内存模型有关,模型采用缓存与主存的方式对变量进行操作,也就是说,每个线程都有自己的缓存空间,对变量的操作都是在缓存中进行的,之后再将修改后的值返回到主存中,这就带来了问题,有可能一个线程在将共享变量修改后,还没有来的及将缓存中的变量返回给主存中,另外一个线程就对…

    2022年7月27日
    10
  • IdentityServer4总结[通俗易懂]

    IdentityServer4总结[通俗易懂]一.客户端模式客户端模式只对客户端进行授权,不涉及到用户信息。如果API需要提供到第三方应用,第三方应用自己做用户授权,不需要用到用户资源,就可以用客户端模式,只对客户端进行授权访问api资源。1.添加客户端newClient(){ClientId=”apiClientCd”,//客户端IdClientSecrets={newSecret(“apiSecret”.Sha256())},//客户端密码AllowedGrantTypes=GrantTypes.

    2025年6月29日
    3
  • python十进制转二进制转换_python十进制转二进制,可指定位数「建议收藏」

    python十进制转二进制转换_python十进制转二进制,可指定位数「建议收藏」#convertadecimal(denary,base10)integertoabinarystring(base2)#testedwithPython24vegaseat6/1/2005defDenary2Binary(n):”’convertdenaryintegerntobinarystringbStr”’bStr=”…

    2025年7月8日
    1
  • Linux Platform Device and Driver,platform_add_devices()->platform_driver_register()

    Linux Platform Device and Driver,platform_add_devices()->platform_driver_register()
    来自:http://www.diybl.com/course/6_system/linux/Linuxjs/200871/129585.html
    从Linux2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。
        Linux中大部分的设备驱动,都可以使用这套机制,设备用Platform_device表示,驱动用Platform_driver进行注册。
     
       

    2022年7月24日
    10
  • 【蓝牙sbc协议】sbc源码阅读笔记(二)——sbc_struct详解(上)[通俗易懂]

    【蓝牙sbc协议】sbc源码阅读笔记(二)——sbc_struct详解(上)[通俗易懂]sbc_struct结构详解sbc_struct结构的定义://sbc.hstructsbc_struct{ unsignedlongflags; uint8_tfrequency; uint8_tblocks; uint8_tsubbands; uint8_tmode; uint8_tallocation; uint8_tbitpool; uint8_tendian; void*priv; void*priv_alloc_base;};typ

    2025年10月26日
    2
  • 机器学习中的数学——激活函数(六):Parametric ReLU(PReLU)函数

    机器学习中的数学——激活函数(六):Parametric ReLU(PReLU)函数PReLU也是ReLU的改进版本:PReLU(x)={x,x>0αix,x≤0PReLU(x)=\left\{\begin{aligned}x&\quad,x>0\\\alpha_ix&\quad,x\leq0\\\end{aligned}\right.PReLU(x)={xαi​x​,x>0,x≤0​PReLU函数中,参数α\alphaα通常为0到1之间的数字,并且通常相对较小。如果αi=0\alpha_i=0αi​=0

    2022年6月22日
    42

发表回复

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

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