前言

通过本题,学习了使用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】相关推荐

  1. [BUUCTF] 逆向 reverse1

    下载,丢进ida 点开main方法 注意到下面的,我们输入的Str1要等于前面生成的Str2 if ( !strncmp(Str1, Str2, j_strlen(Str2)) ) 前面的生成算法懒得 ...

  2. buuctf逆向pyre

  3. buuctf 逆向Transform

    拖进 exeinfope查看pe文件的基本信息,发现没有壳是x64架构 然后拖入 IDA f5进行静态分析 逻辑也很简单,就是先输入,然后检查长度是否是33字节,然后进行一个加密循环,然后比较密文,我 ...

  4. buuctf逆向simple rev

  5. buuctf pyre

    buuctf 逆向pyre 最近看到不少py逆向,记录一道题 下载原件发现是pyc文件,先利用uncompyle生成py文件(之前用py3.8.6的版本下载死活不行,在老学长的帮助下发现uncompy ...

  6. BUUCTF-RE XOR

    参考到了大佬的文章:<BUUCTF逆向题解>--xor 尤其是shift+e提取数据的操作是第一次见到 查壳后用ida64打开,可以看到在打印Sucess上面if语句中global保存了我 ...

  7. [羊城杯 2020]easyre 1题解

    一步一个脚印地耐心攀登,就是别去看顶峰,而要专注于在爬的路.                                                                       ...

  8. [GXYCTF2019]luck_guy1题解

    无论风暴把我带到什么样的岸边,我都将以主人的身份上岸.                                                                         ...

  9. BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker

    BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...

最新文章

  1. 颜色字符串转换(正则)
  2. 【Java面试题】41 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?...
  3. Jmeter中文乱码问题
  4. 为什么说DevOps的必然趋势是BizDevOps?
  5. 机器人离线编程画圆误差解决方案_工业机器人离线编程-误差分析和解决方案...
  6. Vue+Axios同步请求
  7. 作者:余超(1993-),男,作者:华东政法大学民商法学硕士生,主要研究方向为民商法。...
  8. 严蔚敏版《数据结构 (C语言版)》和《数据结构题集》(五)——栈和队列...
  9. 书店智能机器人编程与拼装体验课堂_让人工智能与编程教育走进初中教学课堂...
  10. c语言流程图文本,c语言流程图
  11. 网线为什么又叫做双绞线?UTP STP FTP SFTP之间的区别?
  12. java栈中存放_java栈存放什么?java堆存放什么?
  13. 从测试流程角度,对产品质量的一些总结思考
  14. Android开发酒店预定预约管理系统
  15. 在V2EX的开发环境里尝试了一下OneAPM @livid
  16. 探花交友10-数据统计与内容审核
  17. UE4 使用自发光材质作为烘焙光源
  18. 记录一个使C/C++多线程无法加速计算的问题
  19. 项目实战:ASP.NET:B/S结构 个人空间相册、照片上传下载系统
  20. java 导出wps_java如何导出word和wps文档

热门文章

  1. python爬取ppt_Python-爬蟲13-實作-3-爬取PPT網站(完整程式碼)
  2. VC6做QQ对对碰外挂程序
  3. 淘宝模板开发系列之Widget规范
  4. 计算机配置很高 但是很卡,为什么你的电脑配置很高但是玩起游戏来还是很卡?-电脑很卡怎么办...
  5. 第12篇-User-Agent大全和免费代理网站大全
  6. 树莓派C++开发机器人智能小车(15)嵌入式QT界面按钮事件
  7. GitHub给老照片上色项目曝光: 用AI修复母亲的旧照片
  8. python地铁查询系统_Python实现属于自己的公交地铁线路图
  9. 在Linux上创建txt文件,并编辑
  10. 对珠江流域的简要了解