博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我悲惨的人生,该死的UPX壳,谁能救救我
阅读量:4519 次
发布时间:2019-06-08

本文共 708 字,大约阅读时间需要 2 分钟。

 一个程序,被加了UPX壳。。。
 结果加壳的人把UPX脱壳的关键参数都给删除掉了,我现在连脱壳都脱不掉。。。
我从网上下载了UPX最新3.91版本的壳,复制了两个UPX.exe,本来互相加壳和脱壳都没问题。
图片 
但是,我只要修改2几个字节就会变成这样
图片 
结果就是 ,2本来是加壳的,却不能被脱壳了,但是自身却仍然能运行。那句红字已经明显说过了,文件被修改过。
我改了哪里?就是这里。
图片
图片
一目了然。我把从0x1e0到0x214,这一共0x25个字节全部改掉了,结果,这个程序不能被UPX自己识别了。
所以,用UPX自己的脱壳工具,脱壳,失败。这是控制台程序,可能是控制台子系统,如果是Win32子系统的话,这个位置应该在0x3db,直到0x3ff,也是一共0x25个字节。
而我要脱壳的目标文件就是一个被经过这样处理的UPX加壳后的exe文件。
由于程序是ARM平台的,所以我的第一想法是手动脱壳,准备动态调试,但是问题来了除了IDA,没啥能做ARM下的汇编级调试了。WinCE似乎是没有交互WinDBG实现双机调试的功能。
我用安装好的IDA5.5调试,结果我的IDA直接找不到程序,运行程序之后IDA卡死,程序没有启动。附加程序的话,IDA同样卡死。
我用新下载的IDA6.1调试,结果效果的确好多了,能找到程序了,程序可以运行了,但是IDA也直接崩了。
结果,我看了半个下午UPX的源码,本想从 3.91 或者 UPX!上找出点什么,可是,一无所获。我真的饭桶到头了。
如果哪位高手看到的话,给我点提示吧。我要疯了。

 

转载于:https://www.cnblogs.com/suanguade/p/4038073.html

你可能感兴趣的文章
javascript 日常
查看>>
Android打开相机进行人脸识别,使用虹软人脸识别引擎
查看>>
打印沙漏
查看>>
腾讯物联TencentOS tiny上云初探
查看>>
nginx 安装
查看>>
C#中upd分包与发送,已经实现全部代码
查看>>
让插件帮你优化代码
查看>>
学习笔记3
查看>>
LeetCode 20. Valid Parentheses
查看>>
LeetCode 4 Keys Keyboard
查看>>
bean找不到异常
查看>>
重拾Javascript基础(三) - DOM属性&方法
查看>>
电感在电路中的作用(硬件01)
查看>>
ng 动态的生成option。
查看>>
ORACLE-12C-RAC INSTALL
查看>>
LintCode-Topological Sorting
查看>>
自定义引用类型的Enumerable.Union调用(原创)
查看>>
Keil c中自定义带可变参数的printf函数
查看>>
抽象类实例
查看>>
react context prop-types
查看>>