selph
selph
发布于 2022-08-25 / 197 阅读
0
0

新160个CrackMe练习:054-vcrkme01

算法难度:⭐⭐

爆破难度:⭐

信息收集

运行情况:

image

查壳与脱壳:

无壳:

image

调试分析

直接拖IDA:

一开始就看到创建窗口的函数

image

接下来直接跟进DialogFunc找nMsg=0x111,arg_8=3eb的分支:

获取用户输入的两个值,调用了一个call,然后根据返回结果是否为1进行弹框

image

跟进这个call看看:

由于库函数的内联汇编看得头疼,直接F5看吧:

image

注册机

注册码生成算法:(CSharp)

string? name = Console.ReadLine();
int sum = 0;
for (int i = 0; i < name.Length; i++) sum += name[i];

sum += 0x6064;
string? Buffer = string.Format("{0:D}", sum);
char[] code = new char[1024];
code[0] = name[0];
code[1] = '-';
code[2] = char.ToUpper(name[name.Length - 1]);

var code_s = new string(code);
code_s += Buffer;
code_s += '-';
code_s += string.Format("{0:D}", sum += 0x6064);

Console.WriteLine(code_s);

效果:

image


评论