[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker
网上大部分是动调,我尝试IDC解一下,
无壳,32位,放入IDApro,查看main函数
查看wrong和str函数,借出假的flag
a=[0x66,0x6B,0x63,0x64,0x7F,0x61,0x67,0x64,0x3B,0x56,0x6B,0x61,0x7B,0x26,0x3B,0x50,0x63,0x5F,0x4D,0x5A,0x71,0x0C,0x37,0x66]
for i in range(24):if(i&1==0):a[i]=chr(i^a[i])else:a[i]=chr(i+a[i])
print(''.join(a))
flag{fak3_alw35_sp_me!!}
,查看encrypty函数( 这题主要记录一下SMC的IDC脚本过程,SMC上一篇有介绍)
首先选中上面代码段部分(黑色),按D键,先转化为数据
然后使用IDC脚本
#include <idc.idc>static main()
{auto addr = 0x401500;auto i = 0;for(i=0;i<187;i++){PatchByte(addr+i,Byte(addr+i)^0x41);}
}
脚本运行之后还是不可以反编译
我们选中黄色数据按c键转化为代码。
然后选中下面的一大段数据,右键强制分析。
选force然后,选中红色区域,按p定义为函数。
反汇编之后
简单的异或,Buffer的内容为
'hahahaha_do_you_find_me?'
写脚本
v3=[0x0E,0x0D,0x09,0x06,0x13,0x05,0x58,0x56,0x3E,0x06,0x0C,0x3C,0x1F,0x57,0x14,0x6B,0x57,0x59,0x0D]
buffer='hahahaha_do_you_find_me?'
b=list(buffer)
f=''
for i in range(19):print(chr(ord(b[i])^v3[i]),end='')
结果:flag{d07abccf8a410c
少了一部分,我们继续看看汇编,我们先得把finally函数部分D键转化为数据,然后再把黄色(和灰色)部分C键转化为code,然后所有p定义为函数,再F5;
我懵逼了,没看懂。。。。
后面看的大佬的wp 大佬的wp (去看汇编代码!!!,猜测最后几位是与%tp&:是异或关系)
七分逆向,三分脑洞!!!
最后 flag{d07abccf8a410cb37a}
[BUUCTF]Reverse——[网鼎杯 2020 青龙组]jocker相关推荐
- BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker
BUUCTF Reverse/[网鼎杯 2020 青龙组]jocker 先看下文件信息,没有加壳,32位程序 运行一下,又是一道字符串比较的题目 用IDA32位打开,分析一下 // positive ...
- Buuctf [网鼎杯 2020 青龙组]jocker 题解
目录 一.主函数逻辑 二.wrong函数和omg函数--假flag 1.wrong函数 2.omg函数 3.假flag 三.encrypt和finally函数--真flag 1.打开sp指针偏移显示 ...
- re -25 buuctf [网鼎杯 2020 青龙组]jocker
[网鼎杯 2020 青龙组]jocker 前话:ida7.6设置栏内没有general,可以通过ctrl+shift+p打开命令面板,搜索option打开设置选项,于Disassembly设置堆栈显示 ...
- [网鼎杯 2020 青龙组]jocker
[网鼎杯 2020 青龙组]jocker SMC(self-Modifying Code): 自修改代码,程序在执行某段代码的过程中会对程序的代码进行修改,只有在修改后的代码才是可汇编,可执行的.在程 ...
- [BUUCTF][网鼎杯 2020 青龙组]jocker 分析与记录
无壳,IDA打开可以直接进入main函数: 第12行调用VirtualProtect函数更改了offset encrypt处的访问保护权限 BOOL VirtualProtect(LPVOID lpA ...
- buuctf刷题记录21 [网鼎杯 2020 青龙组]jocker
今天挑战一下,结果最后还是看了别人的wp才写出来的 无壳,ida查看发现不能f5,原因堆栈不平衡 进行栈指针修改 修改出错的地方的栈指针偏移,快捷键alt+k,值改为0 然后就能f5了, 逻辑也不难, ...
- 网鼎杯2020 青龙组 jocker
来看一眼题目逻辑哈,看函数名知道_Z5wrongPc那一处是个假加密函数,先不看...然后下面很明显是一道smc了 对加密函数的前186(0xBA)位异或 0x41 这里可以用idapython对加密 ...
- [网鼎杯 2020 青龙组]jocker(详解)
首先我们查看一下信息,32位程序,无壳: 然后用IDA打开,提示// positive sp value has been detected, the output may be wrong! 出现了 ...
- Buuctf[网鼎杯 2020 青龙组]AreUSerialz
[网鼎杯 2020 青龙组]AreUSerialz 打开题目仔细阅读源码 <?phpinclude("flag.php"); highlight_file(__FILE__) ...
最新文章
- java 头尾 队列_源码|jdk源码之栈、队列及ArrayDeque分析
- arcgis-shp文件属性表导出为dbf或txt
- ADB常用命令--不间断更新
- 解决浏览器拦截弹出窗口问题
- oracle 导入电子表格,oracle数据导入到电子表格中
- 【机器学习】鸢尾花数据探索
- anaconda安装第三方库两种方式
- Web安全攻防渗透测试实战指南笔记 三
- 基于51单片机GPS的导航系统设计(3)---毕设论文
- Spring AOP aspectjweaver.jar与aopalliance-1.0.jar 下载地址
- 关于在CSDN中写博客时如何插入图片
- 在Dart中使用FFI调用Rust函数
- sklearn.utils.Bunch的属性
- Ouino法国学习系统评价它是如何比其他学习软件
- 风之谷mobi-宫崎骏漫画kindle7本
- Flutter运行报错Automatically assigning platform `iOS` with version `9.0` on target `Runner`...
- vue具名插槽的使用
- JAXWS CXF JAXB + MyEclipse + Maven Byron自學視頻04
- python自动化通知webhook接口代码参考
- 【供应链】全面分析供应链类型
热门文章
- java 压缩多个文件_java实现一次性压缩多个文件到zip中的方法示例
- 一个html表单赋给另一个表单,是否可以将表单输入到另一个html表单
- mt7601u linux驱动下载,Ubuntu16.04安装DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2
- -32767转化为二进制_程序员需要了解的硬核知识之二进制
- 成功解决TypeError: __init__() got an unexpected keyword argument 'indices'
- BlockChain:《世界经济论坛:区块链将如何重塑金融业?》—20160812—听课笔记
- ML之FE:结合Kaggle比赛的某一案例细究特征工程(Feature Engineering)思路框架
- linux下的/dev/shm/ 以及与swap目录的区别【转】
- python记录_day14 内置函数二 迭代 二分法
- wordpress学习笔记