UPX

使用upx脱壳工具 脱壳-CSDN博客

壳,是用于对一段程序加密的,就是不让你直接能看到程序,而壳可以脱掉,分手脱和机脱,查壳软件如:die,ExeinfoPe

手脱

[原创] 借助 x64dbg 的 UPX 手工脱壳-加壳脱壳-看雪-安全社区|安全招聘|kanxue.com

实战2024SWPUCTF——代号:破壳行动2

查壳发现是upx

拖入xdbg

用F9运行到push

push是把程序存放到栈里,防止加密时候破坏程序,所以在壳运行完之后会有pop来让主程序出来

所以可以,在运行几步,在push rbp后栈的位置下断点

右键这里

选择“在内存窗口转到”

在这里右键

选择断点->访问->单字节

再次F9

看到pop之后接了一个jne循环,就是找对了,把循环过了,会有一个大跳转,跳转进去就是找对了

先F4到指定地点,后F7单步进入,进到跳转地址里,如下:

然后选这个插件脱壳,脱壳步骤如下

这个时候是壳没了,但是函数目录没有导入选择这个

按照顺序,显示把地址确定在这个区间,然后导入函数目录

遇到爆红的就删掉,右键->Delete tree node

最后Fix Dump,然后选定你刚刚普通dump出来的文件就好

能调

机脱

普通壳

下载脱壳的工具,然后直接机脱即可

upx -d (文件拖入)

改壳

一.准备工作

这里需要一款软件叫010,是用于看二进制文件的

二.关于upx的前置知识

首先upx的作用就是。。。忘了,问题不大,但是知道的是他是在正式程序前加一段乱七八糟的东西,大概其是对这个文件解密,解密之后才能看到真正的程序,那么既然他在文件前,也就是说010看二进制,会在正式文件前有关于upx的二进制文件,测试一个

正常的upx壳前面都是一样的,可以自己给一个文件加个壳试试看看,那么竟然能看到是不是就是可以改壳

在改壳中最值得注意的便是

这四个如果这四个的值被改了,是无法正常机脱的

比如这道题,直接脱的结果会是

报错