前言

我好菜啊!真的没人看电影么?我请客!?
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相关推荐

  1. 鸟哥的linux私房菜-基础学习篇 读书笔记

    从事linux工作一年多,算是能够熟练运用linux服务器,但仍觉得自己对Linux的原理,理论缺乏空洞,潜下心来认真阅读尘封的鸟哥经典,知识点很全,收获颇多,实践与知识结合,知行合一,对linux开 ...

  2. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  3. WEB前端攻城小师傅修炼之道

    原文链接: WEB前端攻城小师傅修炼之道 做前端这一个多年头来,零零碎碎的学了一些个知识概念,但是有时候思索一下啊,觉得这个前端知识链还是不很明确,不知道去学习那些知识应对互联网的发展,怎么循环渐进的 ...

  4. 学会Python真的有高收入?「python笔记」Python对象

    1. Python对象 Python使用对象模型来存储数据.构造任何类型的值都是一个对象. 所有的Python对象都拥有三个特性:身份,类型和值. 身份: 每一个对象都有一个唯一的身份标识自己,任何对 ...

  5. chmod 777 什么意思:鸟哥的linux私房菜第六章学习笔记

    鸟哥的linux私房菜基础学习篇:心血来潮决定看一下这本书,虽然都是讲很基础的东西,但是,绝对不是浪费时间,比如我看完了之后就终于明白了chmod777是什么意思了. 写这个读书笔记也主要是想记录一些 ...

  6. 护眼台灯真的护眼吗?为家长推荐四款真正护眼的台灯

    现在学生的近视率越来越高了,突如其来的疫情造成上学时间增加,户外时间减少,加剧了近视重度化的趋势,教育部颁布了,如何预防近视和保护视力的方法,而有一条就是光线问题,而很多家长都会购买带有"护 ...

  7. 鸟哥的Linux私房菜-基础学习篇(第四版):鸟哥-电子书

    内容简介: 本书是知名度颇高的Linux入门书<鸟哥的Linux私房菜基础学习篇>的新版,全面而详细地介绍了Linux操作系统. 全书分为五部分:第一部分着重说明计算机的基础知识.Linu ...

  8. 时过2年再读鸟哥私房菜,写一份读书笔记之第一章到第八章

    上一份工作结束了,时间也过去了2年半,刚入行我是什么都不懂的一个小白,今天来看我可能还是一个什么都不懂的小白,报着初心者的态度决定再读一遍鸟哥的私房菜,看看是否2年半过去了,自己有什么长进. 第0章计 ...

  9. 《鸟哥的Linux私房菜-基础篇》学习笔记

    主要用来记录学习,如果能帮助到你那最好了. 数据流重导向 概念 cat /etc/crontab /etc/vbirdsay 标准输出:将cat的文件输出到屏幕上 标准错误输出:无法找到文件报错 *系 ...

最新文章

  1. JS作用域相关知识(#精)
  2. 【鉴轻尘】你说你炒的了币,开发得了项目,然而这些你都知道吗?
  3. 在eclipse下配置maven插件
  4. Android基础_1 四大基本组件介绍与生命周期
  5. Android 换肤demo,轻量快捷接入集成,判断是否夜间模式
  6. android 恢复app 到前台,android手机把app disable了,怎么恢复
  7. JAVA入门级教学之(逻辑(布尔)运算符)
  8. 曾经“杀手级”的桌面语言 Java 将要退隐江湖?
  9. python开发安卓盒子_Python盒子:模块、包和程序
  10. 配置Outlook连接Exchange
  11. 高德地图输入地址获取经纬度_不打开地图也能获取地址-利用百度地图API和Python实现...
  12. CorelDRAWX4的VBA插件开发(十四)快速定位形状
  13. java飞机大战强化版_java飞机大战升级版源码(全彩,背景音乐,各种音效,不同僚机,子弹特效以及技能系统)...
  14. 计算机中使用资源叫什么,在计算机术语中,什么叫资源子网和通信子网?
  15. unbuntu 安装docker
  16. 计算有效时间的时间戳
  17. 宝宝咳嗽症状以及护理
  18. 远端WWW服务支持TRACE请求
  19. 电商用户行为实时分析系统(Flink1.10.1)
  20. 【174期】华为OD(外包)社招技术二面,总结复盘

热门文章

  1. 【C语言】——C语言实现科赫雪花及科赫曲线
  2. maven archetype 自定义
  3. Win11怎么开启任务管理器 Win11任务管理器开启方法
  4. 使用教育网邮箱学生验证Microsoft Imagine 微软开发者 获取window server 2016正版密钥教程
  5. SVG绘制圆环进度条
  6. WS2812B灯带驱动实验
  7. 【整理】Matlab常用函数
  8. flutter 数据存储 SharedPreferences
  9. 2019款苹果一体机/笔记本安装/恢复macOS Catalina图文详解
  10. 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它