【BUUCTF逆向 jocker】
前言
通过本题,学习了使用OD的dump插件
一、题目分析
题目无壳,进入以后看到如下函数逻辑:
这里我是直接可以看到反汇编的,但是后面看了别人的WP,说是这个地方有堆栈不平衡,因而导致看不到反汇编,不知道是不是IDA版本的原因,我这里用的是7.7版本
这里有两个函数,wrong和omg,通过这两个函数可以还原出一个假flag,具体就不说了,关键的地方在encrypt和finally,这两个函数在干什么的,其中encrypt无法跟进,然后再有一段(encrypt + i) ^=0x41,这么一段,一开始没明白,为什么这里是对函数进行运算,后来看了别人的WP明白了,这段程序相当于加了壳,这里程序运行的时候在自动脱壳还原,干扰了静态分析,那么我们的思路就是,通过在函数还原后的位置上下断点,然后把encrypt函数的内容dump出来再分析
这个在函数解密后又调用了一次,这里的encrypt函数是已经还原了的,所以在这个位置下断点,跟进去就可以dump出encrypt函数:
保存后再次进行分析就可以看到:
通过这里可以算出flag的一部分,最后5个字符在final函数中获得,final函数就在encrypt函数的后面:
这里是有一些半猜半算的,因为这个函数看不出来什么,猜测是通过异或,然后用已知明文的最后一位’}‘,去和’:'异或得到密钥71(这部分是看了别人的WP才知道的),进而算出后5位
二、代码示例
a = b'hahahaha_do_you_find_me'
v2 = [14,13,9,6,19,5,88,86,62,6,12,60,31,87,20,107,87,89,13]
flag = ''
for i in range(len(v2)):flag += chr(v2[i] ^ a[i])print(flag)enc = b'%tp&:'
for k in enc:flag += chr(k ^ 71)print(flag)
#flag{d07abccf8a410cb37a}
总结
通过本题主要是学习了如何使用dump工具插件,其余的部分应该是还有个堆栈不平衡的问题,但是这里我并没有什么影响,工具的原因吧
【BUUCTF逆向 jocker】相关推荐
- [BUUCTF] 逆向 reverse1
下载,丢进ida 点开main方法 注意到下面的,我们输入的Str1要等于前面生成的Str2 if ( !strncmp(Str1, Str2, j_strlen(Str2)) ) 前面的生成算法懒得 ...
- buuctf逆向pyre
- buuctf 逆向Transform
拖进 exeinfope查看pe文件的基本信息,发现没有壳是x64架构 然后拖入 IDA f5进行静态分析 逻辑也很简单,就是先输入,然后检查长度是否是33字节,然后进行一个加密循环,然后比较密文,我 ...
- buuctf逆向simple rev
- buuctf pyre
buuctf 逆向pyre 最近看到不少py逆向,记录一道题 下载原件发现是pyc文件,先利用uncompyle生成py文件(之前用py3.8.6的版本下载死活不行,在老学长的帮助下发现uncompy ...
- BUUCTF-RE XOR
参考到了大佬的文章:<BUUCTF逆向题解>--xor 尤其是shift+e提取数据的操作是第一次见到 查壳后用ida64打开,可以看到在打印Sucess上面if语句中global保存了我 ...
- [羊城杯 2020]easyre 1题解
一步一个脚印地耐心攀登,就是别去看顶峰,而要专注于在爬的路. ...
- [GXYCTF2019]luck_guy1题解
无论风暴把我带到什么样的岸边,我都将以主人的身份上岸. ...
- BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker
BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...
最新文章
- 颜色字符串转换(正则)
- 【Java面试题】41 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?...
- Jmeter中文乱码问题
- 为什么说DevOps的必然趋势是BizDevOps?
- 机器人离线编程画圆误差解决方案_工业机器人离线编程-误差分析和解决方案...
- Vue+Axios同步请求
- 作者:余超(1993-),男,作者:华东政法大学民商法学硕士生,主要研究方向为民商法。...
- 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...
- 书店智能机器人编程与拼装体验课堂_让人工智能与编程教育走进初中教学课堂...
- c语言流程图文本,c语言流程图
- 网线为什么又叫做双绞线?UTP STP FTP SFTP之间的区别?
- java栈中存放_java栈存放什么?java堆存放什么?
- 从测试流程角度,对产品质量的一些总结思考
- Android开发酒店预定预约管理系统
- 在V2EX的开发环境里尝试了一下OneAPM @livid
- 探花交友10-数据统计与内容审核
- UE4 使用自发光材质作为烘焙光源
- 记录一个使C/C++多线程无法加速计算的问题
- 项目实战:ASP.NET:B/S结构 个人空间相册、照片上传下载系统
- java 导出wps_java如何导出word和wps文档
热门文章
- python爬取ppt_Python-爬蟲13-實作-3-爬取PPT網站(完整程式碼)
- VC6做QQ对对碰外挂程序
- 淘宝模板开发系列之Widget规范
- 计算机配置很高 但是很卡,为什么你的电脑配置很高但是玩起游戏来还是很卡?-电脑很卡怎么办...
- 第12篇-User-Agent大全和免费代理网站大全
- 树莓派C++开发机器人智能小车(15)嵌入式QT界面按钮事件
- GitHub给老照片上色项目曝光: 用AI修复母亲的旧照片
- python地铁查询系统_Python实现属于自己的公交地铁线路图
- 在Linux上创建txt文件,并编辑
- 对珠江流域的简要了解