easy_Maze 梅津美治郎 寒假逆向生涯(16/100)
easy_Maze
这个题简单,迷宫题目,需要动调,或者不用动调也行,可以自己算出地图,我用的是动调。
生成地图的两个函数
只需要动调到这两个函数的下一步后,找到储存矩阵的空间的地址, 把这个地址转到数据窗口跟随. 运行到生成矩阵的下面一个函数. 得到生成的矩阵.
把数据复制下来,每个数据是 占了四个字节(小端存放),然后根据函数外可知地图是7 * 7,紧接着把高28位的数据去掉,留下低四位,形成一副7*7的地图,顺着1按完asdw
即可
即 UNCTF{ssddwdwdddssaasasaaassddddwdds}
梅津美治郎
这题的话,不难,只是得看出那个回调函数那里玄机
level1
直接得出字符串: r0b0RUlez!
level2分析
这里有个debugbreak
函数,这函数的话,也就是相当于一个int 3指令,引发一个中断,把执行权移交给调试器,如果没有调试器,那就移交给其他异常处理回调函数,如果都没有,那么程序就自己断下来,这里就是为了触发回调函数,如果没有调试器附加,
那么debugbreak
产生的异常会被AddVectoredExceptionHandler
添加的回调函数捕获来处理,这里添加的回调函数也就是
就这个函数,成为了捕捉异常的回调函数。。
当我用OD的时候,发现这个int 3直接被patch掉了,不会触发异常回调函数,然后就直接return 0了。最后直接调用主函数外面的exit(0),直接跑0x7开头的地址,跑飞了,然后就没了。。这里用ida动调看看这个回调函数里面的东西。
再来动调看看这个数组值
然后看看紧接着输入字符的运算与这个数组的关系
直接异或2即可,上代码
a=[0x75,0x31,0x6E,0x6E,0x66,0x32,0x6C,0x67]
b=''
for i in a:b+=chr(i^2)
print(b)
两部分使用下滑线连接起来为flag{r0b0RUlez!_w3lld0ne}
easy_Maze 梅津美治郎 寒假逆向生涯(16/100)相关推荐
- secret-galaxy-300 Replace(印象深刻) 寒假逆向生涯(8/100)
secret-galaxy-300 脑洞题,直接没说法,就以后别碰这种脑洞题就行,,,,没任何帮助 显示界面 OD打开后,显示这个鬼东西.然后就没了. ida静态分析 看到上方输出框有字符串,所以我们 ...
- IgniteMe debug 寒假逆向生涯(2/100)
IgniteMe 声明 这是道超级简单的题目,就不重复啰嗦了,找到需要加密的关键代码后,直接一步到位. memset(&v4, 0xCCu, 0xF4u);if ( strlen(a1) &g ...
- HWS计划 decryption 寒假逆向生涯(17/100)
decryption 前奏 没法搞,直接拖ida 全局 首先输入flag,然后一个if判断一下长度是否符合,不符合直接结束 然后再new处一个数组,接着一个加密函数,把加密后的存放在new出来的数组里 ...
- babymips(下) 寒假逆向生涯(14/100)
babymips上 主要核心代码 var_10= -0x10 var_8= -8 var_4= -4 arg_0= 0addiu $sp, -0x28 sw $ra, 0x28+var_4($sp) ...
- babymips(上) 寒假逆向生涯(14/100)
babymips 这题呢,看名字就知道,不出所料,还是mips指令,挺简单的,懒得找插件,直接分析吧,锻炼锻炼自己 开战 lui $v0, 0x40 addiu $a0, $v0, (aGiveMeY ...
- easyre-153 testre寒假逆向生涯(13/100)
easyre-153 简单题目,流程走起,首先查壳, 脱壳 upx壳,利用工具把它脱掉 ida静态分析 int __cdecl main(int argc, const char **argv, co ...
- deedeedee crazy 寒假逆向生涯(11/100)
deedeedee 这题没说法...直接用notepad++打开第二个文件,然后就看到了flag....人傻了... flag{t3mplat3_met4pr0gramming_is_gr8_4_3v ...
- notsequence 寒假逆向生涯(9/100)
notsequence 这题目,挺简单的,首先无壳,直接拖进ida,然后查看了一下伪代码 轻易发现只需要满足三点就行 sub_80486CD((int)&unk_8049BE0) (unsig ...
- re-for-50-plz-50 寒假逆向生涯(6/100)
re-for-50-plz-50 这题目属实没法看伪代码(当然,可以下载插件进行一系列帮助),在这里呢,我直接读mips的指令集,因为涉及到的指令挺简单的 MIPS32指令集对照 全部指令 .text ...
最新文章
- 数据显示:7月份BCH链上交易量较3月份激增逾900%
- 如何获取所有Git分支
- python之简单爬虫(爬取豆瓣出版社)
- 小白 LeetCode 242 有效的字母异位词
- 汽车电气化竞争:获胜的途径
- jsonp react 获取返回值_Django+React全栈开发:文章列表
- IE9 新功能 五大新特点
- 音乐版视觉中国 ?VFine Music:我没有 我不是
- 【报告分享】2020-2021年中国职业教育投融资发展报告.pdf(附下载链接)
- 防备电脑死机故障技巧的8个方法
- 2008年下半年软件水平考试之程序员试题分析
- Oracle-Linux安装配置python3.6环境
- mysql安装 黑马程序员_MySQL数据库安装教程详解
- 【DL小结2】CNN前向、反向传播及常用结构
- java计算机毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析MyBatis+系统+LW文档+源码+调试部署
- 上海大学2020计算机考研专业,2019上海大学计算机专业考研参考科目
- MS发起的PDP上下文激活过程----PPP和PDP激活是什么区别
- thinkphp5 自定义分页样式
- (初学者)关于C语言中退格键(\b)的初步了解
- 整理下OSS方面的资料,免得到处找,linux音频编程,open sound system
热门文章
- 成功解决Fit Failed Warning: Estimator fit failed. The score on this train-test partition for these param
- Keras之DNN:基于Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN实现分类预测概率——DIY二分类数据集预测新数据点
- 第八九章 正态分布与超越正态
- python中的with
- Azure Automation (5) 调整Azure SQL Database DTU
- LLBLGen update table with join
- 题解 UVA10298 【Power Strings】
- [学习笔记]圆方树广义圆方树
- mysql-二进制日志
- java-类的结构及使用