XMAN【我真的好菜-同pizza师傅修炼笔记四】hackcon-app.exe
前言
我好菜啊!真的没人看电影么?我请客!?
Again!有小姐姐一起看电影的么?!
hhhh~
分析
首先是个windows
程序,PE32+
尝试运行报缺少dll
,百度一下发现是用minGW
编译的,于是在电脑上装了minGW
但还是运行不了。-。-!!
IDA
查看全局搜索字符串可以看到virtual
字样,而且看这个程序的结构,套了四层while
,肯定是一个vm
的题,同时看到导入函数中有onexit
函数,这是一个linux下的回调函数,会在程序退出时执行注册的函数,不过这里对解题没什么影响。
我们可以很快的定位到main
函数
bytecode
变量名的提示也很明显,向上找到其交叉引用,可以到GLOBAL__sub_I__ZN7Machine8do_stuffEv
这个函数中,然后_refptr__binary_keycheck_start dq offset _binary_keycheck_start
,就可以找到bytecode
,将其提取出来,按照vm
的规则进行整理。如下
bytecode:10 06 41 00 00 00 mov r6 0x4110 07 50 00 00 00 mov r7 0x5010 0A 08 00 00 00 mov ra 0x805 07 0A r7 <<= ra r7 = 0x50 << 0x810 08 56 00 00 00 mov r8 0x5610 0A 10 00 00 00 mov ra 0x1005 08 0A r8 <<= ra r8 = 0x56 << 0x1010 09 45 00 00 00 mov r9 0x4510 0A 18 00 00 00 mov ra 0x1805 09 0A r9 <<= ra r9 = 0x45 << 0x1802 06 07 r6 |= r7 r6 = 0x41 | r7 | r8 | r902 06 08 r6 |= r802 06 09 r6 |= r911 07 03 mov r7 r300 07 06 r7 ^= r6 r7 = r3 ^ r611 06 02 mov r6 r200 06 03 r6 ^= r3 r6 = r2 ^ r310 08 0E 73 02 01 mov r8 0x0102730e 00 06 08 r6 ^= r8 r6 = r6 ^ 0x0102730e10 05 04 AA 10 03 mov r5 0x0310aa0403 05 01 r5 += r1 00 05 02 r5 ^= r2 r5 = (0x0310aa04 + r1)^r211 08 00 mov r8 r0 r8 = r010 09 01 D3 F0 04 mov r9 0x04f0d30104 08 09 r8 -= r9 r8 = (r0 - 0x04f0d301)^r100 08 01 r8 ^= r102 05 06 r5 |= r602 05 07 r5 |= r702 05 08 r5 |= r8 r5 = r5 | r6 | r7 | r811 00 05 mov r0 r5FF is right ? r0 != 0 correct! else false00 00 00 00 00 00 0088 35 40
这个vm
真的不难,就是有的时候脑壳有点疼。
整理一下加密过程如下:
from libnum import n2s,s2n
r3=s2n('XXXX')
r2=s2n('XXXX')
r1=s2n('XXXX')
r0=s2n('XXXX')
r7=0x50<<0x8
r8=0x56<<0x10
r9=0x45<<0x18
r6=0x41|r7|r8|r9
print r6 #1163284545
r7 = r3^r6
r6=r2^r3^0x0102730e
r5 = (0x0310aa04 + r1)^r2
r8 = (r0 - 0x04f0d301)^r1
r5 = (0x0310aa04 + r1)^r2 | r2^r3^0x0102730e | r3^1163284545 | (r0 - 0x04f0d301)^r1
if r5 == 0:print 'corrert'
else:print "error"
print r5
辣么,只需使每个|
都为0
即可。
直接口算的。。。
r3 = 1163284545 #F4LL
r2 = 1146364751 #ACyK
r1 = 1094941003 #DT#O
r0 = 1177832524 #EVPA
print n2s(r0)
print n2s(r1)
print n2s(r2)
print n2s(r3)
总结
我真的好菜!
pizza
师傅称这是水题。反正低头就是了!。
XMAN【我真的好菜-同pizza师傅修炼笔记四】hackcon-app.exe相关推荐
- 鸟哥的linux私房菜-基础学习篇 读书笔记
从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...
- 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)
鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...
- WEB前端攻城小师傅修炼之道
原文链接: WEB前端攻城小师傅修炼之道 做前端这一个多年头来,零零碎碎的学了一些个知识概念,但是有时候思索一下啊,觉得这个前端知识链还是不很明确,不知道去学习那些知识应对互联网的发展,怎么循环渐进的 ...
- 学会Python真的有高收入?「python笔记」Python对象
1. Python对象 Python使用对象模型来存储数据.构造任何类型的值都是一个对象. 所有的Python对象都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对 ...
- chmod 777 什么意思:鸟哥的linux私房菜第六章学习笔记
鸟哥的linux私房菜基础学习篇:心血来潮决定看一下这本书,虽然都是讲很基础的东西,但是,绝对不是浪费时间,比如我看完了之后就终于明白了chmod777是什么意思了. 写这个读书笔记也主要是想记录一些 ...
- 护眼台灯真的护眼吗?为家长推荐四款真正护眼的台灯
现在学生的近视率越来越高了,突如其来的疫情造成上学时间增加,户外时间减少,加剧了近视重度化的趋势,教育部颁布了,如何预防近视和保护视力的方法,而有一条就是光线问题,而很多家长都会购买带有"护 ...
- 鸟哥的Linux私房菜-基础学习篇(第四版):鸟哥-电子书
内容简介: 本书是知名度颇高的Linux入门书<鸟哥的Linux私房菜基础学习篇>的新版,全面而详细地介绍了Linux操作系统. 全书分为五部分:第一部分着重说明计算机的基础知识.Linu ...
- 时过2年再读鸟哥私房菜,写一份读书笔记之第一章到第八章
上一份工作结束了,时间也过去了2年半,刚入行我是什么都不懂的一个小白,今天来看我可能还是一个什么都不懂的小白,报着初心者的态度决定再读一遍鸟哥的私房菜,看看是否2年半过去了,自己有什么长进. 第0章计 ...
- 《鸟哥的Linux私房菜-基础篇》学习笔记
主要用来记录学习,如果能帮助到你那最好了. 数据流重导向 概念 cat /etc/crontab /etc/vbirdsay 标准输出:将cat的文件输出到屏幕上 标准错误输出:无法找到文件报错 *系 ...
最新文章
- JS作用域相关知识(#精)
- 【鉴轻尘】你说你炒的了币,开发得了项目,然而这些你都知道吗?
- 在eclipse下配置maven插件
- Android基础_1 四大基本组件介绍与生命周期
- Android 换肤demo,轻量快捷接入集成,判断是否夜间模式
- android 恢复app 到前台,android手机把app disable了,怎么恢复
- JAVA入门级教学之(逻辑(布尔)运算符)
- 曾经“杀手级”的桌面语言 Java 将要退隐江湖?
- python开发安卓盒子_Python盒子:模块、包和程序
- 配置Outlook连接Exchange
- 高德地图输入地址获取经纬度_不打开地图也能获取地址-利用百度地图API和Python实现...
- CorelDRAWX4的VBA插件开发(十四)快速定位形状
- java飞机大战强化版_java飞机大战升级版源码(全彩,背景音乐,各种音效,不同僚机,子弹特效以及技能系统)...
- 计算机中使用资源叫什么,在计算机术语中,什么叫资源子网和通信子网?
- unbuntu 安装docker
- 计算有效时间的时间戳
- 宝宝咳嗽症状以及护理
- 远端WWW服务支持TRACE请求
- 电商用户行为实时分析系统(Flink1.10.1)
- 【174期】华为OD(外包)社招技术二面,总结复盘
热门文章
- 【C语言】——C语言实现科赫雪花及科赫曲线
- maven archetype 自定义
- Win11怎么开启任务管理器 Win11任务管理器开启方法
- 使用教育网邮箱学生验证Microsoft Imagine 微软开发者 获取window server 2016正版密钥教程
- SVG绘制圆环进度条
- WS2812B灯带驱动实验
- 【整理】Matlab常用函数
- flutter 数据存储 SharedPreferences
- 2019款苹果一体机/笔记本安装/恢复macOS Catalina图文详解
- 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它