
reverse
文章平均质量分 73
1mmorta1
这个作者很懒,什么都没留下…
展开
-
flutter逆向初探-- 2023国赛ctf的flutterror
flutter逆向真的还挺难的,做的时候搜到的资料里最有用的是这个系列的三篇: https://www.guardsquare.com/blog/current-state-and-future-of-reversing-flutter-apps。基本能了解flutter的一个运行机制。reflutter 对这个题来说是能用的,但是能给到的有效信息并不多所以用处不大。之前照着别的文章做,都是先reflutter然后对着dump出来的offset进行hook, 所以比赛时就卡在这里了。原创 2023-06-04 15:21:15 · 1791 阅读 · 1 评论 -
midnightctf2023 reverse
sat solveexpectations用longjmp和setjmp做的异常处理由于前八字节一定是“midnight”可以直接在下图位置下断点, 手工尝试cur_chr的值递归嵌套的程序,每次check两字节, 因为flag不长所以是苦力的手工做的不过队友写了ptrace的dump脚本dump下来的逻辑很简单, 不多说了 flag: u_b34t_th3_c10ck吐了这题, 当时把它当misc在做, 后面才知道它可以是个可执行文件https://blog.cmpxchg8b.co原创 2023-04-10 14:57:41 · 295 阅读 · 1 评论 -
某乎的x-zse-96字段sign
s转载 2023-03-06 22:50:41 · 494 阅读 · 0 评论 -
西湖论剑2023 Berkeley writeup ——bpf字节码逆向
bpf字节码逆向原创 2023-02-09 15:48:21 · 770 阅读 · 0 评论 -
西湖论剑2023 Dual personality writeup ——天堂之门技术的分析
天堂之门技术分析原创 2023-02-04 16:25:58 · 1421 阅读 · 0 评论 -
RCTF2022 reverse 部分writeup
huowang picstore checkserver 等题原创 2022-12-13 15:38:13 · 2951 阅读 · 0 评论 -
祥云杯2022 部分reverse writeup
包括racket engtom 和 getcorrectkey 三题原创 2022-11-01 13:33:37 · 1375 阅读 · 0 评论 -
对某智能家居软件的一些分析
因为家里装了一些“全屋智能”的设备,也是想试试看逆向一个真实的app是什么感觉,而且这个app想来总是比微信支付宝好下手一点,所以就来试试啦。最后的效果是可以自己写python脚本来实现家中一些设备的控制。原创 2022-10-23 23:47:31 · 1144 阅读 · 0 评论 -
基于APK文件格式的反编译对抗(两次颜色app的反编译研究)
拿到手的app都是一些违法的app软件,因此为了它们为了隐藏自己的身份自然希望自己的软件不要被逆向,但又因为自身水平和成本的限制,所以会对apk文件添加一些简单的对抗手段。其中最简单有效的就是利用apk文件本质是一个zip的方法,修改一些zip文件格式,插入一些垃圾数据来增加逆向获取信息的难度。虽然这种做法改变了apk文件的结构,但是却并不会影响其本身程序的运行。原创 2022-10-10 20:44:54 · 1954 阅读 · 0 评论 -
2022 TCTF / RisingstarCTF reverse题 vintage 两关的Writeup
2022 TCTF的一道游戏reverse题的题解原创 2022-09-22 19:57:39 · 1393 阅读 · 0 评论 -
2022强网杯 Quals Reverse 部分writeup
强网杯2022 quals reverse部分中game, easyapk, easyre 三题原创 2022-08-03 02:47:09 · 1776 阅读 · 0 评论 -
用x32/x64dbg脱DLL壳(IAT表修复和重定位表修复)
一直搜到的都是看雪论坛上用的lordPE和ImportREC进行脱壳和修复,感觉有点过时了.记录一下x32/x64dbg的脱壳和IAT修复方法.首先用esp定律等方法找到程序的入口点, 然后使用Scylla插件并填写其中的OEP地址.然后用IAT Autosearch去找可能的IAT表,dump并fix pe文件即可....原创 2022-05-06 15:18:00 · 6344 阅读 · 1 评论 -
c++逆向中类的识别(Reversing C++ 读书笔记)
paper is here前置知识一个类的对象的布局成员变量按照声明的顺序放置在内存中,但是如果该类中含有虚函数,那么会有一个指向虚表的指针在成员变量的第一个。class Ex2{ int var1; public: virtual int get_sum(int x, int y); virtual void reset_values();};/* 对象中的布局如下class Ex2 size(8): +--- 0 | {vfptr} 指向虚表 4 | var1 +---原创 2022-04-20 21:34:41 · 4160 阅读 · 0 评论 -
*CTF 2022 Reverse Writeup
AAA : immortalNaCl感觉和native client 关系不大 就是mmap出来一个页当成栈来使用, 并且栈顶指针变成了r15而非rsp关键函数做了反调试, 在加密输入之前会先计算dword_80AFB60 作为key, 具体操作没仔细看反正dump出来就完事了剩下的就是动调跟着汇编指令慢慢撸逻辑, 加密部分就是一个简单的费斯妥密码后面接一个xtea , 每八个字节都是独立计算的cmp = [0x66, 0xC2, 0xF5, 0xFD, 0x86, 0x82, 0x32.原创 2022-04-17 09:00:00 · 664 阅读 · 0 评论 -
PlaidCTF 2022 coregasm writeup
题目给了elf文件coregasm 和它crash以后的coredump文件,我们需要利用coredump文件里的信息来逆向elf文件。这一题分成四个部分:flag1这是最简单的,因为crash后的coredump文件里一定是有异或了0xa5的flag1. 所以我们直接对于整个coredump文件异或0xa5, 就找到了flag1 。flag2找到我们发现这部分的加密用到了从./otp里读取的数据,这部分数据也应该残留在了coredump文件里。 用010Editer打开人工翻翻找到了0x80长原创 2022-04-11 15:25:40 · 1024 阅读 · 0 评论 -
tqlctf reverse wp: Tale of the Arrow & quantum
Tale of the Arrow题目给了源码, 把输入转成二进制串, 每一位都会打出三个数字, 数字正确和错误可能各一半, 但是其中有一个一定是正确的. 因此利用flag是可见字符最高位必为0 以及 一组三个有两个错误时剩下那个一定正确 两个条件可以直接还原出flagwith open('output.txt','r') as f: con = f.read().splitlines()[2:]con =[ int(x) for x in con]torf = [0] * len(c原创 2022-02-21 15:38:59 · 504 阅读 · 0 评论 -
ByteCTF2021 Final reverse ByteService wp
ByteCTFFinal2021 reverse ByteService wp题目给的apk里面是一个RPC调用, 发现找了ByteService这个服务public void callCTFService(int i, int i2) { try { Class<?> cls = Class.forName("android.os.ServiceManager"); Parcel obtain = Parcel.obtain(原创 2021-12-13 22:36:52 · 3163 阅读 · 0 评论 -
BalsnCTF 2021 reverse ML
预期解(未完成)下载下来一个字节码文件,是一种没见过的语言,解释器在:项目地址而且这个语言并没自带的反编译器,因此下载下来源码,发现debugger.c文件里有disassemble功能的函数。尝试编译出一个debug版本的解释器,但是报错失败了。(呜呜回头去看看官方有没有wp)非预期解直接看字节码文件里有长得像打乱后flag的明文,且发现代码最后的比较是逐字节比较。因此直接patch这些比较字符串然后进行爆破。from pwn import *context.log_level = 'war原创 2021-11-22 16:49:13 · 151 阅读 · 0 评论 -
2021L3HCTF luuuuua Writeup
2021 L3HCTF luuuua WriteupAAA:immortal这题做完以后感觉和ByteCTF2021的language binding很像,这是我之前写的Writeup 。首先打开java层,发现asserts/res/test.lua里的逻辑是假的。然后通过LoginActivity里的afterTextChanged方法找到关键的b.c.a.b.a.d。 注意它import org.keplerproject.luajava.LuaState; import org.ke原创 2021-11-15 16:20:15 · 5662 阅读 · 0 评论 -
2021强网拟态防御国际精英赛 reverse: babytms
强网拟态防御国际精英赛reverse: babytmsAAA:immortal用Ida打开babytms文件,可以看到ida自动检测出的文件类型:ida内发现大量函数无法被反编译出来。google 以后可以猜到程序是运行在TMS320C6000设备上的,因此先找到官方的手册TMS320C6000Programmer’s Guide 和 TMS320C6000 Assembly Language Tools v8.3.x User’s Guide (Rev. C)在后者的文档中我们可以找到原创 2021-11-15 14:44:53 · 1099 阅读 · 0 评论 -
2021湖湘杯 Hideit Writeup
2021湖湘杯 HideitAAA : immortal动态调试直接x64dbg动调找到了关键的加密代码分别是xxtea 和 chacha20,直接动调从中拿出各种参数然后写代码进行解密。其实一开始没看出来chacha20,找到了这篇文章 逆向中常见的Hash算法和对称加密算法的分析 .解密dll后来在赛后和队友交流发现这题其实在数据段放了一个加密的dll文件,在解密段可以x64dbg dump出dll的代码。断点下在memncpy上,解密结束后就可以dump出对应的地址,删去pe头之前的原创 2021-11-15 14:39:59 · 3266 阅读 · 0 评论 -
ByteCTF2021 reverse languagebinding writeup
Language BindingAAA : immortal拿到题目ida打开发现是go语言逆向,而且函数名都被混淆掉了,动态调了一下整个人都傻了。之后尝试直接打开了new_lang_script.out,看了一下有大量的0x55所以估计就是异或了0x55,解密出来发现是一个luac文件,修改文件头以后直接用luac -l执行,发现会报错。和我自己写的lua脚本比对会发现题目luac中的opcode全都是打乱的。此时猜测这个程序就是用go语言写的一个执行luac脚本的编译器,因此真正解释执行的原创 2021-10-18 00:53:44 · 857 阅读 · 1 评论 -
Linux下的signal调试
Linux下的signal调试最近逆向时候碰到了好几个关于signal的逆向题,因此来做个总结。打开gdb输入info handle可以看到gdb对于所有信号量的默认处理方式,我们关注常用的前几个:注意到圈起来的部分是gdb在调试时自己处理而不会传递给源程序的几个信号量,因此这几个信号量就大量用于逆向题中搞一些骚操作。对这四个信号量进行改写时,如果不更改gdb中的“pass to program”选项,则程序还是会安装默认的处理方式处理该信号。想要进行调试,需要用handle 信号量名 pass进行原创 2021-09-28 20:37:58 · 755 阅读 · 0 评论 -
Windows下IDA Pro 7.5 无法打开的解决方案
前几天换了电脑再配环境,美滋滋的从旧电脑里直接原样拷贝来的IDA PRO竟然出现了无法打开的情况。而且这个无法打开它还不报错。于是就用x64dbg动态调试了一下。原创 2021-08-15 21:10:34 · 6111 阅读 · 0 评论