X0r
upx壳
用工具先脱壳
然后拖进ida
1 | // local variable allocation has failed, the output may be wrong! |
就是一个多次异或的变换,逆向就是编写脚本把Str2再重复一遍这些异或操作即可
flag{XOR_1n_Re_1s_E4sy}
ez_re
64位elf,拖进ida
1 | int __cdecl main(int argc, const char **argv, const char **envp) |
进入crypto函数发现加密函数如下
1 | _BYTE *__fastcall crypto(__int64 a1) |
解题脚本如下
1 |
|
flag{uNp4ck_1s_b@sic_5kill_Of_r3}
tables
pyc文件;网上找到反编译工具反编译一下
代码及分析如下
1 | a = [ |
解题脚本如下:
1 | a = [ |
flag{ismytablethateasytocrack}
babyjvav
.class 文件,拖进idea查看
代码及分析如下
1 | // |
因为不知道原flag字符,分析后大胆猜测flag是字母开头,就以26个字母遍历开头字母来推后续字符
一开始是以小写字母来遍历,发现有一个像flag的字符串jVAVSnTeSY
;但是有乱码
又换大写字母遍历,flag就出来了;
python脚本如下:
1 | text=[60, 23, 23, 41, 110, 66, 44, 17, 126, 68, 43, 26, 113, 71, 10] |
flag{Jvav_1s_N0t_E4sy}
easypyc
先反编译pyc,如下:
1 | #!/usr/bin/env python |
很简单的一个变换算法,但一开始我思考逆向的时候,陷入了16进制整体变换的泥坑,思不得解
经某昊爷启发,二进制逐位异或去思考便很容易找到规律
脚本如下
1 | import libnum |
Comments