使用upx对二进制进行加壳
由于项目需求,需要对二进制进行加壳处理,于是对加壳工具进行比较,最终选择upx,因为是开源的软件。
名称 | 加壳类型 | 商用/开源 | 优点 | 缺点 | 平台兼容性 | |
upx | 压缩壳 | 开源 |
1、压缩率高 2、解压速度快 3、压缩的可执行文件没有额外的内存开销 4、开源 |
1、可能被杀毒软件误认为 恶意软件,存在误杀(目前在virscan.org 上没有扫出病毒之类的信息) 2、用upx加壳后,使用upx -d就可以脱壳, 还有脱壳工具也可以进行脱壳,脱壳简单, 强度弱 |
windows linux arm |
|
ASProtect | 加密壳 | 商用 | 研究它的人很多,因此很容易被脱壳 | windows | ||
EXECrptor | 加密壳 | 商用 | 加密安全性表现良好 |
1、有破解版 2、兼容性不是很好 |
||
Armadillo | 加密壳 | 商用 | Armadillo中比较强大的保护选项是Nanomites保护(即CC保护),用的好能提高强度,其他选项没什么强度 | |||
Themida | 加密壳 | 商用 | 虚拟机保护技术 | 生成的软件有些大 | ||
VM Protect | 虚拟机壳 | 商用 |
1、加密的安全级别很高 2、破解难度很大 |
1、加密数据多 2、可能会影响系统的性能 |
Windows、linux |
1、环境
uname -a
Linux centos 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
2、操作步骤
以ls命令为例,使用readelf查看原始的ls
使用upx对ls加壳,./upx.out -o myls ls
使用file对ls进行查看
使用file对myls查看
upx解压缩
./upx.out -d myls
objdump -d myls
压缩前后大小比较
使用upx对二进制进行加壳相关推荐
- UPX源码分析——加壳篇
0x00 前言 UPX作为一个跨平台的著名开源压缩壳,随着Android的兴起,许多开发者和公司将其和其变种应用在.so库的加密防护中.虽然针对UPX及其变种的使用和脱壳都有教程可查,但是至少在中文网 ...
- 【逆向】UPX工具使用及加壳
加壳常用的工具: https://www.52pojie.cn/thread-165931-1-1.html 下载UPX加壳脱壳工具: http://upx.sourceforge.net/ UPX使 ...
- Reverse | 使用UPX对软件进行加壳
题目描述: 主机C:\Reverse\6目录下有一个CrackMe6.exe程序,这个程序是使用upx程序加过壳的,请尝试对其进行手工脱壳,并编写详细的分析报告.要求脱壳后的程序可以正常运行. 实验步 ...
- 实验四:使用UPX加壳与脱壳
一.实验目的 了解程序加壳.脱壳原理 掌握PE文件结构 学习利用UPX Shell.LoardPE.IDA等工具完成软件的加.脱壳操作 二.实验题目 UPX加壳:对crackme加上UPX壳,用 Lo ...
- 压缩加壳工具UPX编译及使用实例
压缩加壳工具UPX编译及使用实例 压缩加壳工具UPX编译及使用实例 UPX介绍 UPX在debian下编译 UPX使用 压缩加壳工具UPX编译及使用实例 UPX介绍 UPX是一个著名的压缩壳,主要功能 ...
- UPX对Android上ELF加壳使用过程中的若干问题总结
1. UPX中使用的压缩算法有三种,最早是UCL,然后加入了NRV,3.91版本又加入了LZMA.按照UPX源码中的文档来说,UCL压缩效率是相对较低的,但是好处是OpenSource的,NRV效率较 ...
- Ubuntu使用upx加壳时报错:NotCompressibleException
在ubuntu中使用官方3.95版本upx对程序进程加壳,upx提示加壳失败:NotCompressibleException 原因是我写的demo程序编译后小于40kb,使用静态编译后,达到800+ ...
- CTF-UPX脱壳加壳讲解;(详细版)
在做CTF-RE题的时候,下载的题目附件会发现缺少函数方法的现象,说明这个文件就被加壳处理了; 这个是加壳状态下的; 脱壳后~~~~~~~ 如何发现是加壳的呢? 除了开头所描述的方法,还有第二种 用E ...
- experiment : EXE使用UPX加壳后, 用OD查找OEP
测试程序 #include "stdafx.h" #include <windows.h> #include <tchar.h>int _tmain(int ...
最新文章
- [JAVA][Liferay] Configure sharding in multiple sites
- Chrome开发者工具Element style里的Computed标签页
- Red Hat Linux 5.4 开启xdm远程访问
- Sping : @InitBinder注解
- 再看lambda/sorted/filter/map
- 操作mysql_操作mysql
- pandas多行合并一行_Pandas函数妙用
- 使用ASP.Net Forms模式实现WebService身份验证 (转)
- java实用技巧论坛_学习Java前要掌握6大技巧!
- 测试金士顿固态硬盘软件,金士顿固态硬盘优化工具(Kingston Toolbox)
- 408考研计算机网络视频,计算机408考研视频哪个好
- 简单记录阿里云语音识别API调用方法
- Rxjava Subject分析
- 【爱情叙记】--刚闹完别扭
- int(4)、int(8)、int(11) 分别占用几个字节 ?
- 全国地铁数据爬取-python
- 酷科技 | 智能戒指 ——将科技武装到手指
- Spring Boot 整合 RabbitMQ 实现
- 从零开发商城系统 系统功能模块整理
- 《养个皮皮虾:开心赶海水族箱》用户隐私政策
热门文章
- 数字IC/FPGA推荐书籍
- php 怎样取时间的年月日,php如何获取年月日的时间戳以及日期的方法
- 关于 abiFilters armeabi-v7a
- 从一道题谈C++中构造函数调用构造函数
- Python基于YOLOv5的交通标志识别系统[源码]
- 天地伟业tiandy如何连手机_天地伟业安卓版下载-天地伟业app官方下载v4.1.3[视频监控]...
- r语言plot函数x轴y轴名字_R语言中绘图的注释函数小结
- 广义交叉验证(GCV)
- matlab常用函数及用法总结
- nubia ui 5.0 android,流畅度爆棚 搭Android 5.0系统新机一览