selph
selph
发布于 2022-07-29 / 221 阅读
0
0

新160个CrackMe练习:030-AcidBytes4

算法难度:⭐⭐⭐

爆破难度:⭐

信息收集

运行情况:

image

查壳与脱壳:

UPX,无脑ESP定律即可

image

调试分析

Delphi程序,IDR走起

首先是获取Name和Serial校验长度

image

然后是进行一个计算,根据Name计算Serial:

相同的操作会进行6次:取一个字节,乘以2,然后累加起来,会操作的就是Name的前6个字符

image

最后把这个累加值保存起来,给这个累加值加上个Name长度的两倍,转字符串(十进制,就是真码了

image

注册机

注册码生成算法:

#include <iostream>

int main()
{
	char name[100] = { 0 };
	int sum = 0;

	std::cin >> name;
	for (int i = 0; i < 6; i++) sum += name[i] * 2;
	sum += strlen(name)*2;

	if (sum >> 0x1f == 0)std::cout << sum;
}

结果:

image

总结

又是这种,把能写进循环的东西写了超级多段落,不难,只要有Delphi的符号,分析起来还是挺快的


评论