刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

攻防世界 XCTF Reverse APK-逆向2 Writeup

运行提示使用ilspy反编译看到源码中的ip和端口,使用nc在本地监听该端口,就能得到flagCTF{7eb67b0bb4427e0b43b40b6042670b55}还有一种解法,直接按程序流程执行,得到flag,遇到一个问题,写法不同得到的结果不同# encoding=utf-8 import io text = "Super Secret Key" file_name = '

攻防世界 XCTF Reverse echo-server Writeup(花指令,汇编修复)

下载之后发现是elf,先拖ida里面看一下,发现很多个函数都识别不出来,都是出现call xxxxx+1的情况,这个很明显就是插入了E8或者其他东西造成ida识别错误,首先看一下main函数有一个loc_80487C1+3,双击跳转到对应代码段看一下发现全都是数据,这个时候在call near ptr 915A4B8Fh处按下D,将代码转化为数据很明显这里是插入了一个E8让ida误以为这是一个函数调用在080487C2处按下C,将数据转化为代码,再把下面的数据全部转换为代码。在E8处点击一下,然

攻防世界 XCTF Reverse crackme Writeup

脱壳后ida打开arr = [0x12, 0x04, 0x08, 0x14, 0x24, 0x5C, 0x4A, 0x3D, 0x56, 0x0A, 0x10, 0x67, 0x00, 0x41, 0x00, 0x01, 0x46, 0x5A, 0x44,    &n

攻防世界 XCTF Reverse simple-check-100 Writeup(gdb,动态调试)

绕过check_key即可得到flag在linux下使用gdb进行调试root@kali:~/ctfWP/xctf/reverse/simple-check-100# gdb gdb-peda$ file task9_x86_64_46d01fe312d35ecf69c4ff8ab8ace75d080891dc  gdb-peda$ b main gdb-peda$ r #然后一直回车运行下一步直到check_key返

攻防世界 XCTF Reverse secret-string-400 Writeup

ida打开发现是空的,右键notepad++打开,(后来看其他人wp,发现可以直接解压出来)看起来是个html页面,手动删除掉大段的null,修改文件后缀名为html,打开修改源码,打印出执行的命令在opcode12中找到关键代码算法很简单,逆推一下即可,wpnonce = 'groke' f = '' j = 0 ex = [1, 30, 14, 

攻防世界 XCTF Reverse serial-150 Writeup

ida无法生成伪代码,使用ghidra打开查看可以看到16个字符,按变量名进行排序,一个一个写下来先是local_208 + local_208._1_1_ + local_208._2_1_ + local_208._3_1_ .。。。。= EZ9dmq4c然后组合 cSatck505 + cSatck506 + cSatck507 。。。。。。 = VAb7G9g8得到字符串 EZ9dmq4c

攻防世界 XCTF Reverse android-app-100 Writeup

反编译apk可以看到代码调用了libadnjni.soida打开,可以看到32位hash放到模拟器上运行一下还有一种解法,找到md5加密前的字符串,再进行一次md5加密:import hashlib ret_a = 92060626 d = 114366 d = str(d + ret_a) + ' ' print(d) m =&nb

攻防世界 XCTF Reverse reverse-for-the-holy-grail-350 Writeup

算法题,一开始完全看不懂,慢慢磨了一天,才看明白通过主函数看到字符串处理的代码在stringMod里面__int64 __fastcall stringMod(__int64 *a1) {   __int64 v1; // r9   __int64 v2; // r10   __int64 v3; // rcx

攻防世界 XCTF Reverse babymips Writeup

mips逆向ida没安装插件无法逆向mips,下载一个ghidra工具,需要安装jdk11才能执行。使用ghidra打开,发现下面的代码,flag的前五位异或处理后,判断正确进入下一步又是一系列看似复杂的操作,实际上仔细观察后并不复杂,就是循环flag,判断i进入不同的计算,计算就是左移或者右移。解题方法两种,一种是直接根据代码逆推,另一种是直接暴力破解#第一种方法 ,逆推代码 str = 'Q|j{g' i = 0 for

攻防世界 XCTF Reverse asong Writeup

这题非常棒,刚开始完全看不懂,看完wp后,豁然开朗,让我对reverse又有了新的了解。推荐阅读这个wp wp.pdf重命名后的代码,逻辑就清楚了。各段代码细节分析逆向代码为:s = open('out', mode='r').read() # print s crr = [] for i in s:     

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.