逆向手的自我修养
逆向魔法师学习法术的目标(去想,去学,去征服) des加密(已解决) frida的使用,安卓逆向 去平坦化 aes加密 混淆 反调试 sm4 go与rust的处理 linux内核与gdb z3, dfs, smc 还有每日的练题,语言和wp学习 1.try-catch与结构化异常处理(SEH)(全称[Structure Exception Handler]seh是windows系统对c/c++程序做的语法拓展,用于处理异常事件的程序控制结构, #include <windows.h>//包含windows中的api与seh的相关定义 seh含有-try{}-catch函数 与-try{}_final函数 由于ida的反编译语言是c/c++,于是我了解一下c/c++中的seh 主要是(windows的seh检验)(块检验) 1234struct _EXCEPTION_REGISTRATION_RECORD { struct _EXCEPTION_REGISTRATION_RECORD* Next; ...
misc法术
misc起始受大佬的启发我也写个misc总结,边写边学知识 当然这并非一日之功,所以这篇会持续更新,当然本人主项是逆向魔法师,但也兼职msic,也会持续学逆向和msic,以后可能也会写点开发 1 url编码先说一下url是统一资源定位符,是互联网上用于标识和定位资源的唯一字符串 这里写一下url的几个说明(你进入了url的世界,你必须遵守以下规则,否则你将无法正确得到url) 1.url仅支持ascii码传送 2.url encoding编码字符导能传输的格式(非ascii码想办法转为ascii码形式) 3.urlencoding使用%加上两个十六进制数编码不支持的字符 4.url不能有空格,urlencoding 保留字符(可以直接传送) percent-encoding newline %0A or %0D or %0D%0A space %20 ! %21 # %23 $ %24 % %25 & %26 ‘ %27 ( %28 ) %29 * %2A + %2B , %2C / %2F :...
y
……….1.14…………………….. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ……………………………………………….. …………… 1.14……………………………………………………………. yyyyyyyyyyyyyyyyyyy yyyyyyyyyyyyyyyyyyy s………………………………….. o…………………………………. y……………………………….. o…………………………………. @m……………………. o…………………. r……………………….. ti……………….. s……………………………… 睦子米和小墨生日快乐
notitile
期末周
reverseweekn
1**[Week2] CPPReverse**一开始n个小时我直接看着c++原程序,结果抽象的一批(附带PDB文件),这个提醒 pdb存着什么(源代码文件路径与行号信息,局部变量、全局变量和类型,函数名和参数信息,类、结构体的成员信息)其实其实映射表(可以类比Android逆向的so层处理) 当然由于笨蛋的我并未发现这点,导致ida程序十分抽象,难度直线飙升,所以先来个禁pdb的 进来直接被一堆不知道什么的东西吓哭了,直接开始动调 这明显是输入,按n改名,一定要改名,后面再次出现就知道他是干什么的 v13 = (unsigned __int8)sub_7FF626234970(v16, “flag{“) || *(_BYTE *)sub_7FF626233C10(v30) != 125; 注意这个 *(_BYTE *)明显是字符125按r变成’}’ 这很明显是输入验证 不妨输入flag{123456}123456最白不要是000000那么反序就看不出来了 接下来是重头戏 这是输入突然被推入栈顶,多半是要进行操作了 下一步flag{}没了,这事就知道...
2025最后一篇
2025年最后一天,闲的没事写一下明年的愿望是成为逆向大魔法师,再见2025 printf(“Hello 2026!!!”)
miscwp
qctfweek1(misc)1《关于我穿越到CTF的异世界这档事:序》我是逆向手,这里顺带做点misc,可能有些菜 也是看到题就蒙了 看了官方wp才知道是base64隐写 什么是base64隐写 先说base64加密吧,base64是将3字节(3乘8位)变为(4*6位) 那么这就给了可乘之机 A的二进制为010000 01 这样base64加密为010000 01000000 000000 000000 对应base64表 Q Q = = 这里看第二个q我把010000改成011000其并不会影响base解密 而其多的那些就是隐写字符 当然我现在只会c语言,不会python,然后用了官方wp的python脚本 123456789101112131415161718192021222324252627import base64def get_diff(s1, s2): base64chars = 'ABCDE...
wp
MOECTF如何上传图片将图片文件夹放在source文件夹下面,一定不要与文件名字一样, 之后mark语法即可(赞美徐✌) 1.upx_revange 显然上面版本号下面0D将upx!扣掉 加上55 50 58 21(upx!)通过编辑中的插入字节 之后 upx -d脱壳0 lY7bW=\ck?eyjX7]TZ\}CVbh\tOyTH6>jH7XmFifG]H7明显为密文 sub_7FF6F2A61000直接就是base64标准表 Block = ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_; 这个block是指针,指向的偏移地址就是base64表 t = *ptr ^ 0xE;证明base64异或0xe之后进行base64加密 OLMJKHIFGDEBC@A^_]Z[XYVWTolmjkhifgdebc`a~|}z{xyvwt>?<=:;8967%!这是标准base64表异或然后加密的结果 这里插一句一开始让ai干的结果生...
Flower花指令和壳的学习
flower是花指令,花指令是什么?其实就是插入垃圾指令,我好不容易写出的程序怎能让你这么轻易的逆出来。所以我们要通过修改汇编去破除花指令。 我们不妨想一下哪里能插入垃圾指令。你看jmp跳转以及call指令等等地方都是不二之选。 在了解花指令之前,我们先要学习ida的反汇编机制。 1 线性扫描算法,线性一条流水线上的,想想c语言的线性顺序,类比一下这就是从头到尾扫描,都解释为指令,这就使其如果遇到数据也可能错误反汇编,在反汇编代码中插入数据,反汇编就会失败。 2 递归下降算法,其根据可能执行的逻辑进行反汇编,一般是在遇到分支跳转和call指令时发挥作用,jmp指令其就不会看jmp与跳转到的地址中间的汇编代码,而例如jz等条件跳转其就会分析两条路径(跳转与不跳转)。 花指令(可以在main函数中也可以在主函数之前)的基本类型拥有以下几种 1 插入无关指令 (1)就如调用一些无用的寄存器 add eax, ebx push eax 其就可以插入一个无用的ecx寄存器去干扰你的静态分析 (2)插入无关数据是ida错误解析(可变长度指令...
wuye的逆向之旅始篇
本人是来自JNU的逆向手,主攻逆向,这便是开始的篇章吧
