simplecheck
下载下来有3个文件,一个exe,2个elf文件
先把exe文件放进ida里看看
伪码里有用的主要是下面部分
输入的key,然后在if里执行check_key函数
BOOL __cdecl check_key(int a1)
{
signed int i; // [esp+8h] [ebp-8h]
int v3; // [esp+Ch] [ebp-4h]
v3 = 0;
for ( i = 0; i <= 4; ++i )
v3 += *(_DWORD *)(4 * i + a1);
return v3 == -559038737;
}
不过这里计算了一下,是不可能满足条件的,所以要执行下面的interesting_function函数
想到的是使用OD动调跳转
于是打开OD,先搜索一下key
然后看见下面的跳转输出"Wrong"的部分,于是将JZ修改为JNZ
然后运行,随便输入一个key
这时候最坑的地方在于它的输出是乱码
= =询问阿伟得知可以通过IDA的远程调试跑出来
但是我这里一直调不出来
= =于是跟着WP学了下GDB调ELF文件
先在主函数下断点, 接着输入"n"来单步过,直到提示输入key之后,到后面的test eax eax的地方
这个时候使用 "i r eax"查看寄存器的值
于是修改使其为1 "set $eax=1"
接着c就可以了
"flag_is_you_know_cracking!!!"