crackme-系列之-crackme1

首先打开程序进行查看

image-20201217211408617 image-20201217211534773

发现无壳

逻辑分析

image-20201217211703604

账户密码认证 直接仍进去OD进行分析 搜索关键字

image-20201217211729398

在函数⼊⼝处下断点然后运⾏跟踪

输⼊11111 11111

image-20201217211749736

发现关键call 和对比进入分析

image-20201217211829649

image-20201217211843007

image-20201217211852605

⽤户 11111

堆栈 ss:[0019F664]=0241D6A8, (ASCII “CW-4018-CRACKED”)

eax=00000005

image-20201217211930837

输⼊后成功破解

对算法进行相应的破解

下断点 输⼊ 11111 22222

image-20201217212049762

image-20201217212101828

image-20201217212112333

发现有两次-的拼接

image-20201217212144262

CW-xxxx-CRACKED

image-20201217212206907

这⾥为取第⼀⼀位 ascii码值的16进制 31 x 0x29

image-20201217212244191

相乘之后为 0x7d9

image-20201217212316214

image-20201217212401486

image-20201217212426807

image-20201217212446924

⾃身x2

image-20201217212513125

之后转10进制即可

image-20201217212548980

image-20201217212606569

image-20201217212619373

接下来是字符拼接

image-20201217212647428

根据push关系可以推断出此处注册码为:

CW-4018-CRACKED

#####

算法脚本如下:

c = input("please input a str\n")
temp=eval(hex(eval(hex(ord(c[0])))*eval('0x29')*eval('0x2')))
flag = "CW-" + str(temp) + "-CRACKED"
print (flag)

image-20201217212906861

Author

ol4three

Posted on

2020-12-15

Updated on

2021-03-03

Licensed under


Comments