逆向工程 (10题)
re
easy_reverse(python反编译)bugkuctf





easy_XOr(Susctf)
int __fastcall main(int argc, const char **argv, const char **envp)
{
char v4; // [rsp+Fh] [rbp-91h]
int v5; // [rsp+10h] [rbp-90h]
int i; // [rsp+14h] [rbp-8Ch]
int v7; // [rsp+18h] [rbp-88h]
int v8[24]; // [rsp+20h] [rbp-80h]
char s[24]; // [rsp+80h] [rbp-20h] BYREF
unsigned __int64 v10; // [rsp+98h] [rbp-8h]
v10 = __readfsqword(0x28u);
v8[0] = 83;
v8[1] = 116;
v8[2] = 113;
v8[3] = 96;
v8[4] = 112;
v8[5] = 99;
v8[6] = 125;
v8[7] = 78;
v8[8] = 87;
v8[9] = 103;
v8[10] = 57;
v8[11] = 110;
v8[12] = 104;
v8[13] = 82;
v8[14] = 102;
v8[15] = 106;
v8[16] = 113;
v8[17] = 32;
v8[18] = 123;
v8[19] = 125;
v8[20] = 115;
v8[21] = 104;
v5 = 0;
v4 = 1;
puts(“Mercy: What do you want to tell me?”);
scanf(“%s”, s);
v7 = strlen(s);
if ( v7 != 22 )
puts("You Are Defented;");
for ( i = 0; i < v7; ++i )
{
if ( v5 )
{
if ( v8[i] != (i ^ s[i]) )
v4 = 0;
v5 = 0;
}
else
{
if ( v8[i] != (i ^ s[i]) )
v4 = 0;
v5 = 1;
}
}
if ( v4 )
puts("Heros never die~Victory~");
else
puts("You Are Defented;");
return 0;
}

exp
自己写个脚本提取一下数据再解密
1 | |
baby_re(强网先锋)net逆向



还有一种方法是修改判断次数,修改num,调试后得到flag

[DASCTF 2024最后一战|寒夜破晓,冬至终章]tryre




DASCTF{454646fa-2462-4392-82ea-5f809ad5ddc2}
[DASCTF 2024最后一战|寒夜破晓,冬至终章]刻板印象re


len=48
猜测sub_401023为copy函数
看一下sub_40126C这个加密函数
下面是比较函数

a1就是数据串的初始地址
密文
byte_42F090=”aughter_is_poison_to_fear”;
加密逻辑在sub_401740,但是401795处有修改堆栈返回值的代码,IDA误以为后面没有代码了,nop掉这部分,就可以看到完整的伪C代码。
我说怎么原来解出来是乱码
nop掉这部分

方法1、nop掉中间部分,然后修改上面机器码跳转到下面的指令


发现是XXTEA
delta是0x11451419
密钥是{What_is_this_?}
1 | |
例题xctf chase(nes逆向)
mapper为0



看到机器码从8000
ida用二进制打开 以6502的形式
flag01

可以直接ce开挂,

TPCTF{D0_Y0U_L1KE_
也可用FCEUX自带的cheat改动
flag02
法1
经过不断调试发现AB对应的值和场景有关,每个场景对应值固定且范围普遍在0-60之间,那么尝试爆破,调整AB的值,改内存时发现会有随机性,相同的值不保证每次的闪烁结果相同,这里是尝试到0x15时看到flag2:

法2
第二段有点misc的感觉,猜测也是在内存里面只不过不会加载到屏幕上,由于每段flag开头都会有THE FLAG PT我们搜索这几个字符的tile 34 28 25,一共发现两个其实一个是第一段flag,tile D2就是代表字符2 D1也就是字符1
这段是flag1


第二段是flag2

1 | |

THE FLAG PT2 FOR YOU IS PLAY1N9_6@M3S_ LBRDTRPLGXAQRPAQGXCSRPEUGXCSRPIYGXGWRPFVGXHXIPFPDPAP GWWWH H H H @@@LEVEL GEMS LIVES CDMLO@0
flag03
看ppu viewer

ON_Y0UR_N3S?}
FLAG:TPCTF{D0_Y0U_L1KE_PLAY1N9_6@M3S_ ON_Y0UR_N3S?}
A_game-MOECTF
看了一下是个数独题目

提取box,顺便整理一下

https://sudokusolving.bmcx.com/

1 | |
FeatureExtraction-Litctf2025

题目提示要特征提取,可能是动调提取44位密文
看加密函数

key


下完断点后提取数据


数据以dword形式提取出来

1 | |
harre-鸿蒙逆向了解
主要还是熟悉这个hap怎么逆向的
进去后直接就看到一个base64变表加密



Android Cracker-MOECTF
看一下然后放到模拟器里试试
好像直接看到flag了

ART-MOECTF
看一下特征码没修改,那就直接脱壳逆



dfs,不然是多解乱码
1 | |
更新: 2025-06-04 14:39:27
原文: https://www.yuque.com/chaye-apqbl/vsc85q/dc9gz10hoac0q8rq