吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3066|回复: 19
收起左侧

[原创] 160个Crackme之044学习笔记

[复制链接]
海天一色001 发表于 2020-8-11 16:33
本帖最后由 海天一色001 于 2020-8-11 16:35 编辑

上两个CM不能叫CM,目前还是一头雾水状态,需要学习新的知识才能应付啊。再来看第44个CM程序,难度仍是“?”,保护方式显示Name/Serial(Delphi)。
打开Dope2112.1.exe,在两个文本编辑框(Name/Serial)中输入“52pojie/1234567890”,点击Registrieren按钮,最下面的标签上显示出“Leider nicht versuchs noch mal !”的提示,这应该是错误提示吧,似英文非英文的。
001.png

第一步、查壳:
002.png
Delphi程序,无壳。
第二步、爆破:
DeDe无法加载Delphi 2.0版本,用IDR试一试,仍然出错了。
直接用OD载入:
003.png
程序前面倒是简洁的很,一大堆的call,不知道有什么用。
再用智能搜索字符串试一试:
找到了刚才的提示:
004.png
双击00421D5A这一行代码进入CPU窗口:
005.png
这两个字符串挨的很近,估计一个是正确提示一个是错误提示,还是百度一下:
德语!!!!
“Hey du hast es geschaft !”---嘿,你做到了!
“Leider nicht versuchs noch mal !”-----抱歉,请重试!
猜测没错,那么00421D40处的jnz跳过了正确提示,是关键跳了。
006.png
所以在这里nop掉,保存为Dope2112.1_nop.exe,打开,直接点击Registrieren按钮,又出了“Der Name muss min. 6 Zeichen lang sein”提示,猜测是Name要6个字符,用网上的德文翻译一下,没错。
重新输入“52pojie/1234567890”, 点击Registrieren按钮,出现正确提示,爆破成功。
007.png
第三步、追码:
撤消刚才爆破时nop的修改,来到段首处下断:
F9运行,输入“52pojie/1234567890”,点击Registrieren按钮,程序中断于00421BAE处。
F8单步慢慢向下,仔细查看信息窗口、寄存器窗口和堆栈窗口,基本上猜测判断出部分call的作用:
008.png
004117F8是得到文本的call
00405248 暂时不知道有什么用,反复F8、F7调试几次后发现是大写字母转换成小写字母的
00403364 得到字符串长度
00421BC1至00421BDB处代码为判断Name字符串是否满足至少6位,如不足6位则跳出“Der Name muss min. 6 Zeichen lang sein”提示;
00421BF2处将eax清零,作为下面循环数的暂存器;
00421BF4至00421CEA处,判断Name字符串中的每一个字符是否符合都是小写字母,如果不是,则统一定义对应值为0x5D;然后依次取name字符串中前5个字符的对应值,再加1个0x5D,存入dl中累加,得到一个数值;
00421CF0至00421CFE处,取Name字符串长度乘以0x4A7E的值,转换成10进制数值,存入SS :[ebp-0x10]中;
009.png
00421D03至00421D0A处,将00421BF4至00421CEA处得到的累加值转换成10进制数值;
010.png
00421D0F至00421D22处将3个字符串连接起来组成真正的注册码;
011.png
从栈窗口中可以看到输入的Name、假码、真码;
012.png
00421D35至00421D5F处判断真假,在CM程序窗口中显示正确或错误的提示:
013.png
注册算法(VB编程):

[Visual Basic] 纯文本查看 复制代码
Private Sub Command1_Click()
Dim Name, Serial As String
Dim i As Integer
Dim Num, Num1, Num2 As Double
Name = Text1.Text
If Len(Trim(Name)) < 6 Then
MsgBox ("Name必须超过6位,如不符合要求,默认Name为“52pojie”,Serial为“172-133490”!")
Text1.Text = "52pojie"
Text2.Text = "172-133490"
Exit Sub
End If
Name = LCase(Name)
Num1 = 93
For i = 1 To 5
Select Case Mid(Name, i, 1)
Case "a"
Num = 24
Case "b"
Num = 37
Case "c"
Num = 66
Case "d"
Num = 12
Case "e"
Num = 13
Case "f"
Num = 6
Case "g"
Num = 54
Case "h"
Num = 43
Case "i"
Num = 23
Case "j"
Num = 47
Case "k"
Num = 19
Case "l"
Num = 130
Case "m"
Num = 155
Case "n"
Num = 146
Case "o"
Num = 3
Case "p"
Num = 99
Case "q"
Num = 31
Case "r"
Num = 66
Case "s"
Num1 = 92
Case "t"
Num = 41
Case "u"
Num = 199
Case "v"
Num = 102
Case "w"
Num = 88
Case "x"
Num = 10
Case "y"
Num = 40
Case "z"
Num = 80
Case Else
Num = 93
End Select
Num1 = Num1 + Num
If Num1 >= 256 Then Num1 = Num1 - 256
Next i
Num2 = Len(Name) * 19070
Serial = Num1 & "-" & Num2
Text2.Text = Serial
End Sub

附件 044.rar (387.7 KB, 下载次数: 6) ,含CM原程序、爆破后的程序、注册机、OD的调试文件等。
百度链接是:https://pan.baidu.com/s/1NEpyyUefbKcoJvMGG_9OmQ,提取码:p8dk。160个CM、我已练习过的前44个crackme程序(不含012、042、043)都在里面

免费评分

参与人数 7威望 +1 吾爱币 +26 热心值 +7 收起 理由
feelings + 1 + 1 热心回复!
hacker-v + 1 + 1 热心回复!
solly + 1 + 1 鼓励转贴优秀软件安全工具和文档!
__不说 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
loo1221ool + 1 + 1 热心回复!
笙若 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

mj7089471 发表于 2020-8-11 17:13
牛逼!你说你
迈克尔詹姆斯 发表于 2020-8-11 17:23
十分感谢楼主分享!!楼主V587。。。万分感谢。。要比其他分享的,还慢慢优越感的楼主强多了。。。谢谢谢谢!!
imiaox 发表于 2020-8-11 17:49
谷歌翻译一下Leider nicht versuchs noch mal
是德语,意思是 抱歉,不要再试
乔帮主爱破解 发表于 2020-8-11 19:26
评论能获得币吗?
这个ID是偷来的 发表于 2020-8-11 19:41
感谢分享,很有用!
yuelingge 发表于 2020-8-11 19:47

感谢分享。 学习了
jiayou618 发表于 2020-8-11 20:11
厉害!精品啊。先谢谢了,
isroot 发表于 2020-8-11 20:35
学习学习
mdjlw 发表于 2020-8-11 20:52

感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-25 15:16

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表