前言

我好菜啊!真的没人看电影么?我请客!?
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. 【经验】对一个合格C++高级工程师(音视频方向)的要求
  2. 进阶学习(1) Gradle 项目管理工具的使用
  3. 网站推广期间出现排名异常网站推广专员应如何应对?
  4. maven项目中找不到Maven Dependencies解决办法
  5. VMware vSphere5.0 HA高可用性原理
  6. JSP标记之指令标记介绍
  7. 面向对象学习(1):认识软件系统的复杂性
  8. 当安防撞上AI风潮 会迸出怎样火花?
  9. 第29课 - 排序课后练习
  10. 对因果报应和轮回的态度
  11. cl.g4r.win index.php,win7 wamp环境配置Oracle数据库连接
  12. 数学建模优化模型简单例题_简单数学建模100例
  13. 保龄球计分c语言程序,保龄球的积分计分规则
  14. PS怎样扣图片和压缩图片工具推荐
  15. 一文入门车载以太网,吐血整理!不看后悔!
  16. Linux修改用户ID
  17. pip installl lap安装失败 error: Microsoft Visual C++ 14.0 or greater is required.
  18. LINUX 字体装在哪个文件夹里
  19. JS中call用法理解
  20. 人生低谷一日感悟+收获

热门文章

  1. 如何解决在打开pip时遇到Fatal error in launcher: Unable to create process using 的问题
  2. 评弹,有些味道,可惜听不懂!
  3. git pull origin master与git pull --rebase origin master的区别
  4. swift 自制framework中加载nib
  5. 耳机声控,以及耳机拔出或者插入控制播放暂停
  6. Java开源数据库引擎,数据库计算封闭性的一站式解决方案
  7. runas 显示740 所需的操作需要提升的解决方法
  8. 教师资格证查询成绩网站服务器,教师资格证成绩查询入口|面试报名入口
  9. linux里的葫芦娃----awk ,sed,grep
  10. css零到一基础教程006:CSS 颜色