Re个人感觉今年的初赛re没签到题,但是难题没有前几年的难
ezRe010发现是pyc文件
nnd,pycdc反编译不了,可能是pyc文件被改了
只能用pycdas,先对key进行异或
类似rc4但是只生成了密钥流,并没有异或密文
后续异或key和51
最后是base64
逆的时候异或密文可以放在最后,不能反编译真恶心
123456789101112131415161...
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...
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添常量
需要注意出题者可能会特意将一些常...