一个程序,被加了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

我悲惨的人生,该死的UPX壳,谁能救救我相关推荐

  1. 【How2RE】 UPX壳及脱壳方式

    0x00 什么是壳 壳是另外在PE文件中包含的代码,并且不影响PE文件正常的执行.而壳也分为很多种,这里从UPX壳开始介绍. 0x01 压缩壳 压缩的分类 压缩的目的就是将体积大的可执行文件缩小的过程 ...

  2. 简单脱壳教程笔记(2)---手脱UPX壳(1)

    本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...

  3. 简单脱壳教程笔记(3)---手脱UPX壳(2)

    我们接着上一篇   "简单脱壳教程笔记(2)---手脱UPX壳(1)"继续.我们说了UPX我们可以使用四种方式,上一篇已经详细的讲解了单步跟踪法,接下来,我们讲解其他方式. 方法2 ...

  4. RE入门之脱壳——手脱UPX壳

    很多加了壳的软件是很难逆向分析的,需要手脱.下面以UPX壳为例简单介绍一下如何手动脱壳 需要工具:x64dbg. 以buuctf中re的新年快乐为例 拿到程序以后使用x64dbg打开. F9运行到程序 ...

  5. HZNUCTF REVERSE Signin题解——upx壳区段改名修复,动态调试脱壳

    目录 一.查壳 二.修复upx区段名脱壳 三.动态调试脱壳 四.注意事项 题目附件:https://pan.baidu.com/s/1KXNvwOd7WObU-LiikiOd8A?pwd=4l31  ...

  6. 手动脱UPX壳的几种方法

    UPX是一种常见的压缩壳.通过PEID检测到是UPX的壳的话,可以用如下四种方式来脱壳: 单步跟踪法.ESP定律.内存镜像法.POPAD查找法. 1.单步跟踪法.就是使用ollydbg(简称OD)加载 ...

  7. upx壳的一些简单脱壳,望大牛勿喷。

    下面是我的脱壳. 手动脱壳 1.ESP定律法查看通用寄存器ESP,数据窗口跟踪.F8单步步入,F4禁止向上跳转 2.单步跟踪法F8单步跟踪,遇CALL F7进入.直到到达OEP,经过多次F8,F4终于 ...

  8. 手脱UPX壳的几种方法

    最近在研究各个壳的脱壳方法,有些心得,和大家分享一下如何手脱UPX的壳 我们的流程是 PEID查壳 得知壳的形式为 UPX 0.89.6 - 1.02/ 1.05 - 2.90 -> Marku ...

  9. 确保人生悲惨的七大秘诀

    为什么要谈确保人生悲惨的七大秘诀?不是应该谈如何人生成功快乐才对吗?这和最近的心灵学时尚「秘密」的想法刚好相反,不但不在心中持续祈求愿望实现,反而去思考怎样才会得到刚好相反的悲惨结局. 查理孟格Cha ...

最新文章

  1. C#中使用ProtoBuf提高序列化速度对比二进制序列化
  2. mysql_ping与mysql长连接
  3. python 中的input
  4. 若川诚邀你加源码共读群,每周一起学源码
  5. mac php errorlog,Mac下使用php的error_log()函数发送邮件
  6. 六款WEB上传组件性能测试与比较
  7. 3年flash游戏开发小结
  8. cad添加自己线性_如何自定义自己需要的CAD线型?
  9. 人工智能学习历程---计算机视觉篇
  10. 今日话题:蜗居在大城市的生活
  11. 增强Spring @CacheEvict实现key模糊匹配清除
  12. 美团点评CodeM编程大赛-题二
  13. 客户端timewait
  14. 算法工程师的三个境界
  15. 华为业务板块_华为三大业务介绍
  16. 【不就是java设计模式吗】设计模式七大原则,用代码对比方式,化抽象为具体,实打实的教会你
  17. GitLab服务器安装完成之后;瓦力系统的安装(之一)
  18. mysql5.7驱动(tableau,excel)
  19. 关于ue4播放(play)后画质不清晰的问题
  20. python开发的运维工具_8种常用的Python工具

热门文章

  1. java map 集合实例_Java之集合类【HashMap】【入门版,实例解析】
  2. mysql 数值型注入_slq-注入总结(中)
  3. python参数检查类型_Python类型检查
  4. easymock教程_EasyMock教程
  5. java 根据类名示例化类_Java收集器类– 18个示例
  6. jsf表单验证_JSF验证示例教程–验证器标签,定制验证器
  7. Java中的Collections类– java.util.Collections
  8. 动态编程语言静态编程语言_什么是动态编程?
  9. 用‘slay’干掉某个用户的所有进程
  10. 用Golang写一个搜索引擎(0x07)--- 正排索引