ICEY 发表于 2020-12-29 11:26

入门级追码(等级1、等级2)

本帖最后由 ICEY 于 2021-1-24 13:58 编辑

等级1:超级简单。(有IDA的话直接F5就能看几乎一模一样的源码。)下载:

等级2:魔改了一下汇编代码,使得IDA不能好好的反编译,哈哈哈,只能老老实实地去追汇编指令了吧!:keai(win10可能用OD无法调试,XP系统可以正常调试。)下载:


等级一、等级二的成功截图均为:

密码可能有多解{:1_907:}(关键是通过汇编指令看懂算法 )等级2源码参考:
问下大家,如果等级一难度是一星的话,那等级二的难度是几星?

搜索曾经的回忆 发表于 2020-12-29 14:18

应该对了吧2 2 5 9

weikun444 发表于 2020-12-29 14:43

本帖最后由 weikun444 于 2020-12-29 14:45 编辑

按lily给的代码,只要满足以下式子就OK了:
假设A为四位字符,
式子一:A=1+A+A
式子二:A=2+A+A
也就是说前2位随意数字,就是算出3、4位了。

第三位等于前2位之和加1;第四位等于中间两位之和加2

jy04468108 发表于 2020-12-29 13:00

第二题的关键位置。

Li1y 发表于 2020-12-29 12:41

IDA还是能按F5的,修一下函数的参数数量和类型就可以了

飘零星夜 发表于 2020-12-31 19:27

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();
}

ICEY 发表于 2021-1-15 19:29

小手冰凉; 发表于 2021-1-13 23:36
第二题虽然不知道为啥IDA无脑F5不行了,但是经过仔细研究还是追出来了,跟第一题类似
>=10

F5不行是因为我把关键函数的汇编指令给分离到了另外一个区段。然后再删改了一些汇编指令。{:1_886:}

byh3025 发表于 2020-12-29 12:29

只会爆破不会算法

jy04468108 发表于 2020-12-29 12:37

第一题,既然说了IDA很简单,那我就只能不用ida了。
算法和关键位置在这里:


wwt1201 发表于 2020-12-29 17:15

厉害了6666

liking163 发表于 2020-12-29 17:17

看来,学破解,这大脑就休息不了啊

VIP007 发表于 2020-12-29 19:36

谢谢 看看
页: [1] 2 3 4
查看完整版本: 入门级追码(等级1、等级2)