入门级追码(等级1、等级2)
本帖最后由 ICEY 于 2021-1-24 13:58 编辑等级1:超级简单。(有IDA的话直接F5就能看几乎一模一样的源码。)下载:
等级2:魔改了一下汇编代码,使得IDA不能好好的反编译,哈哈哈,只能老老实实地去追汇编指令了吧!:keai(win10可能用OD无法调试,XP系统可以正常调试。)下载:
等级一、等级二的成功截图均为:
密码可能有多解{:1_907:}(关键是通过汇编指令看懂算法 )等级2源码参考:
问下大家,如果等级一难度是一星的话,那等级二的难度是几星?
应该对了吧2 2 5 9 本帖最后由 weikun444 于 2020-12-29 14:45 编辑
按lily给的代码,只要满足以下式子就OK了:
假设A为四位字符,
式子一:A=1+A+A
式子二:A=2+A+A
也就是说前2位随意数字,就是算出3、4位了。
第三位等于前2位之和加1;第四位等于中间两位之和加2 第二题的关键位置。
IDA还是能按F5的,修一下函数的参数数量和类型就可以了
int __cdecl main(int argc, const char **argv, const char **envp)
{
int i; //
int v5; //
__main();
v5 = 4;
puts(&Buffer);
scanf("%d%d%d%d", c, &c, &c, &c);
for ( i = 0; i <= 3; ++i )
{
if ( c > 1 && c <= 9 )
++v5;
}
if ( v5 == 8 )
text1(c);
else
lost();
system("pause");
return 0;
}
=====================================
void __cdecl text1(int *a)
{
int i; //
int b; //
b = 2;
for ( i = 1; i <= 2; ++i )
{
if ( a == i + a + a )
++b;
}
if ( b == 4 )
win();
else
lost();
} 小手冰凉; 发表于 2021-1-13 23:36
第二题虽然不知道为啥IDA无脑F5不行了,但是经过仔细研究还是追出来了,跟第一题类似
>=10
F5不行是因为我把关键函数的汇编指令给分离到了另外一个区段。然后再删改了一些汇编指令。{:1_886:} 只会爆破不会算法
第一题,既然说了IDA很简单,那我就只能不用ida了。
算法和关键位置在这里:
厉害了6666 看来,学破解,这大脑就休息不了啊 谢谢 看看