BUUCTF-Reverse:新年快乐 + 加壳与脱壳
题目地址:https://buuoj.cn/challenges#%E6%96%B0%E5%B9%B4%E5%BF%AB%E4%B9%90
用IDA打开文件:
怎么可能才两个函数,猜测加了壳,直接查:
1、将文件拖进exeinfope(或者PEiD)查壳:
发现是upx壳——》拖入kaliLinux脱壳:upx -d 文件名
unpack “upx.exe -d” from http://upx.sf.net or any UPX/Generic unpacker
32位文件
脱壳,网上找脱壳机,当然也可以手动脱壳
2、IDA分析
找到main函数,F5反编译
脱壳后,复制到Windows下,用ida打开(就不只是两个函数了)
查壳伪代码:
__main();strcpy(&v4, "HappyNewYear!"); // 这一行代码使v4=‘HappyNewYear!’v5 = 0;memset(&v6, 0, 0x1Eu);printf("please input the true flag:");scanf("%s", &v5); if ( !strncmp((const char *)&v5, &v4, strlen(&v4)) )// 输入v5后,与v4比较,如果相同,则输出“this is true flag!”result = puts("this is true flag!");elseresult = puts("wrong!");return result;
}
所以flag为:flag{HappyNewYear!}
『软件加壳与脱壳』
植物有壳,动物有壳,软件亦然。
常见的三种壳:压缩壳、保护壳、捆绑壳。
壳的用途:(1)保护版权信息-不让别人随便更改作者版权信息;(2)减小程序体积-方便存储、传输、使用;(3)黑客界给木马等软件加壳,主要为躲避杀毒软件。
常见的加壳工具:
常见的脱壳工具:
常用的侦壳工具:PEID、StudPE、PEscan、Exeinfo PE等
BUUCTF-Reverse:新年快乐 + 加壳与脱壳相关推荐
- .NET程序的代码混淆、加壳与脱壳
通常我们通过代码混淆.加密的形式达到软件保护的目的.在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆.加密从而实现对核心JS代码的保护.如果没有接触过的可以在这里简单了解一 ...
- Python pyc文件 bytecode的压缩, 加壳和脱壳解析
我们常常看到, 自己用PyInstaller等库打包的exe被别人反编译.而源代码在exe文件中是以字节码形式存储的.掌握了字节码的加密技巧, 就可以防止源代码的反编译. 目录 1.字节码是什么 2. ...
- 软件的壳和壳的含义、概念以及加壳和脱壳方法
软件的壳和壳的含义.概念以及加壳和脱壳方法 PE(Portable Executable) 也就是EXE和DL)文件所具有的起压缩.加密.保护作用的东西.可以用PEiD等软件查壳. 加壳通过修改程序入 ...
- 实验四:使用UPX加壳与脱壳
一.实验目的 了解程序加壳.脱壳原理 掌握PE文件结构 学习利用UPX Shell.LoardPE.IDA等工具完成软件的加.脱壳操作 二.实验题目 UPX加壳:对crackme加上UPX壳,用 Lo ...
- 什么是加壳和脱壳技术?加壳和脱壳技术是什么意思?
什么是加壳和脱壳技术?加壳和脱壳技术是什么意思? 加壳,是一种通过一系列数学运算,将可执行程序文件或动态链接库文件的编码进行改变(目前还有一些加壳软件可以压缩.加密驱动程序),以达到缩小文件体积或加密 ...
- Android 加壳与脱壳方式总结
介绍 说到加壳,之前接触的主要都是pc端的壳,当时的脱壳就是用的esp脱壳法,大概意思就是程序运行到将当前环境保存之后,在当前的esp指向的地址下硬件断点,然后再次运行到该点时,进行dump内存,即可 ...
- 360 so加壳动态脱壳方法
转载地址:http://mp.weixin.qq.com/s?__biz=MjM5NzAxMzk4NA==&mid=209300616&idx=1&sn=bcc440640f6 ...
- PE文件的简单加壳和脱壳(UPX和PEiD)
先普及几个概念: PE文件:portable executable(可移植的可执行文件),主要在Windows系统中,包括exe/dll/sys文件. 加壳:是利用特殊的算法,对EXE.DLL文件里的 ...
- 恶意代码分析-第十八章-加壳与脱壳
目录 笔记: 实验: Lab18-1 Lab18-2 Lab18-3 笔记: 壳的功能:缩减程序的大小,阻碍对加壳程序的探测和分析 解析函数导入表:1.仅导入LoadLibrary和GetProces ...
最新文章
- 光盘压制:八种加密方法保护光盘数据安全
- java 二叉堆_二叉堆(三)之 Java的实现
- netty5.0通过LineBasedFrameDecoder和StringDecoder解决粘包
- VueI18n的应用
- STM32 SPI详解
- 谷歌推出 GKE 开源依赖关系漏洞奖励计划
- 2021-08-01
- Ubuntu 18.04 Server必须使用netplan命令配置IP地址
- Androidpn里的XmppManager的理解
- 怪物猎人online 日服 注册流程(原创)
- 免费学plc的手机app_PLC学吧APP
- Python搭建聊天机器人微信订阅号
- Adobe PhotoShop(PS) for Mac 快捷键/PS快捷键
- VUE2.X全教程--基础详解(二)
- linux之服务管理
- 树莓派存储方案_树莓派搭建seafile存储重要文件
- Flak 自定义URL转换器
- IC中LDO电路的DRC验证问题
- Java入门 技术总结
- 参禅静坐--虚极静笃--快速恢复脑力体力