首页 > 其他分享 >借助x64dbg及Scylla的UPX手工脱壳

借助x64dbg及Scylla的UPX手工脱壳

时间:2024-06-02 17:56:03浏览次数:25  
标签:Scylla upx -- 压缩 程序 UPX x64dbg 代码

参考文章:https://bbs.kanxue.com/thread-268159.htm 很多地方都是复制粘贴的,学习学习大佬的文章。

寻找入口点

1、加载程序F9运行,会发现停在push处,push操作将所有寄存器的值压栈,这一步之后会加载UPX的解压代码用于将原始程序解压。
2、upx工作原理首先将程序压缩。所谓的压缩包括两方面,一方面在程序的开头或者其他合适的地方插入一段代码,另一方面是将程序的其他地方做压缩。压缩也可以叫做加密,因为压缩后的程序比较难看懂,主要是和原来的代码有很大的不同。最大的表现也就是他的主要作用就是程序本身变小了。变小之后的程序在传输方面有很大的优势。其次就是在程序执行时,实时的对程序解压缩。解压缩功能是在第一步时插入的代码完成的功能。联起来就是:upx可以完成代码的压缩和实时解压执行。且不会影响程序的执行效率。

graph LR;
1-->2-->3-->4-->5-->6;

1是upx插入的代码,2,3,4是压缩后的代码。5,6是随便的什么东西。程序从1开始执行。而1的功能是将2,3,4解压缩为7,8,9。7,8,9就是2,3,4在压缩之前的形式。

graph LR;
1-->7-->8-->9-->5-->6;

一篇学习upx工作原理的文章:https://blog.csdn.net/zacklin/article/details/7419001 目前先放一放,有时间再学
3、了解之后会知道(虽然我还不太了解),跟踪到这部分栈弹出的位置,就是解压缩完成的地方,即可得到原始的代码
(1)F8将寄存器全部压栈,之后在堆栈窗口,找到标黑的地方(栈顶)下硬件断点(访问,Byte)
img
img
注意一定要等push完再下断点(第一次我就搞错了)
img
(2)F9继续执行,断到了此处,此时已经发现pop,说明UPX的解压过程已经结束.
img

标签:Scylla,upx,--,压缩,程序,UPX,x64dbg,代码
From: https://www.cnblogs.com/Un1corn/p/18221363

相关文章

  • 攻防世界 Mine- IDA静调或x64dbg动调 两种方式
    刷攻防世界的最后一道二星题,记录一下,大佬请飘过 题目分析过程我很勇,我先双击看看这是什么是一个扫雷游戏,第一下运气好没踩雷,发现无法继续输入了;如果运气不好,会输出“您踩雷啦!”丢到PE里面 无壳,64位丢到IDA里面,shif+F12查看字符串,追踪可疑字符串,发现main函数1in......
  • x64dbg破解EnableMenu.exe
    最近在学re,正好记录一下解题思路和x64dbg的使用。目录运行程序搜索API寻找调用者位置打上补丁方法一方法二运行程序首先运行exe文件,发现菜单中的Menue功能被禁用了,无法点击。所以,现在的目标就是修改程序,使菜单有效。搜索API由于该文件是32位的exe文件,所以应该......
  • x64dbg 防止丢失数据库的插件 DbGit
    我跟了一晚上,说丢就丢了,真的无语~找到个使用git的方式备份数据库的插件DbGit 试了下,使用很简单!在手动保存或退出x64dbg时会自动执行 git add -A git commit -m命令。数据库似乎必须得在软件目录下的db目录才行,在被调试程序目录,似乎不行! 从此不会丢数据了,也算......
  • 使用pyinstaller打包python程序时报错UPX is not available
    使用pyinstaller打包python代码程序时报错:UPXisnotavailable原因是 python环境的Scripts文件夹内缺少了一个upx.exe的文件到官网https://github.com/upx/upx/releases/tag/v4.2.2中下载一个UPX,将下载文件解压后得到的upx.exe文件(解压后的所有文件里只要这一个文件即可,......
  • UPX 可执行文件压缩工具的介绍与使用
    UPX是什么UPX全称是"UltimatePackerforeXecutables",是一个免费、开源、编写、可扩展、高性能的可执行程序打包程序。换句话说一个可执行文件的压缩工具。主要的功能是将可执行的二进制程序、动态链接库和其他的二进制文件压缩为更小的体积,UPX通常可以将文件大小减少50%......
  • 【ScyllaDB】Data Manipulation
    介绍CQL支持的用于插入、更新、删除和查询数据的语句。SELECT从data中查询数据使用SELECT语句完成:select_statement:SELECT[DISTINCT](`select_clause`|'*'):FROM`table_name`:[WHERE`where_clause`]:[......
  • ScyllaDB启动问题【合集】
    Savedclustername!=configurednameTestcluster输入如下命令,尝试启动ScyllaDB集群sudosystemctlstartscylla-server发现报错,根据提示,输入systemctlstatusscylla-server.service以及journalctl-xe,查看ScyllaDB集群状态图中红字处为启动失败的报错信息,保存......
  • ScyllaDB详解
    2ScyllaDB号称下一代NoSQL,C++编写充分利用Linux底层原语优势,利用现代多核、多处理器NUMA服务器硬件,卓越性能,API兼容Cassandra和DynamoDB:支持和Cassandra一样的CQL查询语言和驱动,一样的SSTable存储格式同样支持和DynamoDB一样的JSON-style查询和驱动2.1......
  • 1.5 为x64dbg编写插件
    任何一个成熟的软件都会具有可扩展性,可扩展性是现代软件的一个重要特征,因为它使软件更易于维护和适应变化的需求,x64dbg也不例外其可通过开发插件的方式扩展其自身功能,x64dbg提供了多种插件接口,包括脚本插件、DLL插件、Python插件和.NET插件等。此外,x64dbg还支持用户自定义命令和快......
  • 1.1 熟悉x64dbg调试器
    x64dbg是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可靠的解决方案。正是因为有了这些优点,才能......