Question
Binary
little-asm-221bc5c8651806d8a039d5ff2a68bc5c7d9e3a20
Solution
第一步都係扔入ida decompile個main睇睇咩料先!
1 | int __cdecl main(int argc, const char **argv, const char **envp) |
我地可以見到個program首先會讀36位既input1
_isoc99_scanf("%36s", s);
然後做同0xDC做xor1
2for ( i = 0; i < v7; ++i )
s[i] ^= 0xDCu;
最後同 ans 逐個byte做對比1
2
3
4
5
6
7
8
9for ( j = 0; j < v7; ++j )
{
if ( s[j] != ans[j] )
{
puts("Are you sure you read asm?");
result = 0;
goto LABEL_10;
}
}
所以我地可以直接睇下ans save住d咩
然後export to hex 睇下咩黎
咁就可以寫條script解番條flag出黎 :D
1 | hex(0x9e9d919e93939a9384a785eca983e88e9983bd839becec98839de991838eefbd98b9aea1 ^ 0xdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdc)[2:].rstrip("L").decode('hex') |
Flag
BAMBOOFOX{Y0u_4RE_a_G00D_A5M_R3aDer}