Refour12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788int __fastcall main(int ...
原理Frida是一款跨平台的动态代码插桩框架,核心原理是向目标进程注入包含 Frida Runtime 的代码库。该 Runtime 在进程内构建轻量级 JavaScript 环境,并利用底层引擎(Gum)动态修改目标函数的内存指令。通过插入跳转指令(Inline Hook)等,将执行流重定向到代理函数(trampoline/thunk),代理函数负责调用用户编写的 JavaScr...
ReezAndroid
逆向密码,因为密文都是偶数所以可以直接逆,如果有奇数的话还得爆破
123456a=[404, 220, 436, 368, 220, 436, 412, 452, 432, 200, 412]s=''for i in range(len(a)): s+=chr((a[i]>>2)^3)print(s)#f4n_4ndro1d
...
Reweek2Xor_Random动调获取随机数直接异或
1234567891011121314151617181920#include<stdio.h>int main(){ srand(0x77); rand(); char v21=0x7b; char v8; char a[]={0x0C, 0x4F, 0x10, 0x1F...
Reweek2ptrace1fork` 函数会返回两次:一次在父进程中返回子进程的 `pid`,一次在子进程中返回 `0
如果 v11 > 0,表示这是父进程,如果 v11 == 0,表示这是子进程,如果 v11 < 0,表示 fork 失败
可以不看father,直接加参数调试
个人觉得题目出错了
123456789a=[0xCC, 0x8D, 0...
背景
线性扫描算法:逐行反汇编(无法将数据和内容进行区分)
递归下降算法:根据一条指令是否被另一条指令引用来决定是否对其进行反汇编(难以准确定位)
正是因为这两种反汇编的机制和缺陷,所以才导致花指令的诞生
花指令简单说就是在代码中混入一些垃圾数据阻碍静态分析
常见指令
0xE8 call + 4字节偏移地址
0xE9 jmp + 4字节偏移地址
0xEB jmp + 2字节偏移地址
0xF...
ezre14解
看上去有壳,但是无法手动脱
不能sfx脱壳,也不能动调
搜保护器的名字,找到unpack工具Releases · ergrelet/unlicense (github.com)
去花指令后得到main是rc4魔改+tea魔改
tea一次移一个字符,36次循环刚好移完全部密文
1234567891011121314151617181920212223242...
findcrypt3识别常见算法特征
用idapyswitch选择有yara-python的py版本,把findcrypt3.py和findcrypt3.rules放到plugins目录即可
在IDA上方导航栏选择Edit->Plugins,点击Findcrypt即可加载插件
默认无法识别SM4算法,需要在findcrypt3.rules添常量
需要注意出题者可能会特意将一些常...
Re入门指北
xor
upx
dynamic第一个函数就是加密函数
xxtea
在最后result下断点,然后去看a1数组
upx_revenge修改特征码vmp为UPX
xtea这题由于密文只有三组,中间一组会经过两次解密
1234567891011121314151617181920212223242526272829303132#include <...
ReBlackJack游戏成功之后能输出flag,直接动调绕过
改汇编指令jle变成jbe,上面是否成功的判断修改ZF绕过
一轮直接出来,得到flag
ezhtml-1wasm得到.o文件,发现关键字符串但是没法交叉引用
a[(i+1)%35]->&0xf->^a[i]->=a[i]有时候re逻辑也能猜出来但需要不断尝试
看到师傅用jeb直接反...