UPX
壳,是用于对一段程序加密的,就是不让你直接能看到程序,而壳可以脱掉,分手脱和机脱,查壳软件如: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壳前面都是一样的,可以自己给一个文件加个壳试试看看,那么竟然能看到是不是就是可以改壳
在改壳中最值得注意的便是
这四个如果这四个的值被改了,是无法正常机脱的

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