吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2782|回复: 14
收起左侧

[CrackMe] 简单的CrackMe

[复制链接]
legendary666 发表于 2019-8-21 13:54
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。

三无产品不要爆破,爆破没难度
不知道能撑多久.....

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1热心值 +1 收起 理由
Mr_Linear + 1 谢谢@Thanks!

查看全部评分

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

玖公子 发表于 2019-8-22 19:34
本帖最后由 玖公子 于 2019-8-22 19:39 编辑

[Asm] 纯文本查看 复制代码
004B6094    E8 C7B2F4FF     call CrackMe.00401360

004B6099    83EC 0C         sub esp,0xC

004B609C    894424 04       mov dword ptr ss:[esp+0x4],eax

004B60A0    8B85 70FFFFFF   mov eax,dword ptr ss:[ebp-0x90]

004B60A6    890424          mov dword ptr ss:[esp],eax

004B60A9    8B8D 24FFFFFF   mov ecx,dword ptr ss:[ebp-0xDC]

004B60AF    E8 8CB4F4FF     call CrackMe.00401540

004B60B4    83EC 08         sub esp,0x8

004B60B7    84C0            test al,al

004B60B9    C74424 08 0C000>mov dword ptr ss:[esp+0x8],0xC

004B60C1    8B9D 24FFFFFF   mov ebx,dword ptr ss:[ebp-0xDC]

004B60C7    0F84 9E000000   je CrackMe.004B616B



我OD单步到这段断码时,发现程序此时名字和激活码输入完毕,那么接下来肯定就是比较
两个字符串了,我们经过这个call,然后单步到004B609C 这一行,看信息窗口
eax=003F8980, (ASCII "ccktbtvcqvMaxVjpchda")
堆栈 ss:[0022FE44]=003F8920
我猜测这个就是激活码,重启程序,名字不变(jiugongzi),然后激活码输入这个,程序果然提示激活码正确!

接下来在这里我们再按一次F8,来到004B60A0 这一行,看信息窗口
堆栈 ss:[0022FEB8]=0022FEC0, (UNICODE "6")
eax=003F8980, (ASCII "ccktbtvcqvMaxVjpchda")

那么很明显了,这里把eax的变成6再去和ccktbtvcqvMaxVjpchda比较,那肯定不相等,
所以直接将004B60A0    8B85 70FFFFFF   mov eax,dword ptr ss:[ebp-0x90]这一行nop掉,
不让它覆盖eax的正确激活码,那么此时程序就会用ccktbtvcqvMaxVjpchda比较它自己,
百分百正确,程序成功破解!

我们观察发现,这句nop掉后004B60C7    0F84 9E000000   je CrackMe.004B616B这个je就
不会跳转,所以我们也可以直接将这个je语句nop掉,保存出去,程序也是成功破解!


我不会编程,看不懂加密字符串的那个call,所以就没分析算法,水平不行,
只能爆破了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
legendary666 + 1 + 1 用心讨论,共获提升!

查看全部评分

梦游枪手 发表于 2019-8-21 17:32
本帖最后由 梦游枪手 于 2019-8-21 17:33 编辑

贴个keygen代码吧,照着伪代码搬了不少,不要在意变量名这些细节。还有就是这个算法效率有点低。数字类的用户名还好,字符类的用户名生成注册码耗时太久了。
[Python] 纯文本查看 复制代码
import math
def gencode(num1,num2,num3):
    dsum=num1
    xn=num2
    ps=num3
    result=''
    strtable="Q!W@E#R$T%Y^U&I*O(P)A:S;D+F=G?H/J~K`LZXCVBNMplmoknijbuhvygctfxrdzeswaq"
    while(len(result)<0x14):
        i=ps*(dsum+xn)
        while(len(strtable)<=i):
            i-=dsum
            dsum-=5
            if dsum<=0:
                dsum=30
        dsum+=2
        result+=strtable[i]
        xn+=3
        ps-=4
    return (result,dsum,xn,ps)
def powsqrt(dsum,x):
    tmp1=x*(dsum-1)
    tmp2=tmp1+1
    result=pow(tmp2,1.5)
    result+=math.sqrt(tmp1+x*dsum/2+1)+tmp2
    return int(result)
def xornum(dsum,num):
    return dsum^(dsum+2-num)
def getnumf(num):
    return int(str(num)[0])
if __name__=='__main__':
    text=raw_input()
    dsum=0
    for i in text:
        dsum+=ord(i)
    nf=getnumf(dsum)
    xn=xornum(dsum,nf)
    ps=powsqrt(dsum,nf)
    code,dsum,xn,ps=gencode(dsum,xn,ps)
    code,dsum,xn,ps=gencode(dsum,xn,ps)
    code,dsum,xn,ps=gencode(dsum,xn,ps)
    print code


对了,这个CM本质还是明文比较,在关键跳之前是可以看到明文注册码的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
GCM 发表于 2019-8-21 15:09
本帖最后由 GCM 于 2019-8-21 15:18 编辑

小白很有压力不知道字符串经历了什么

最终,惨烈的失败了..

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
hqf159 发表于 2019-8-21 15:58
对不对,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
legendary666 + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| legendary666 发表于 2019-8-21 16:06
本帖最后由 legendary666 于 2019-8-21 16:15 编辑
GCM 发表于 2019-8-21 15:09
小白很有压力不知道字符串经历了什么

最终,惨烈的失败了..

你是不是名字输长了,有限制,但是按理说不可能崩溃啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册[Register]

x
 楼主| legendary666 发表于 2019-8-21 16:09

对对对,就是这样,大佬能分享一下过程吗
GCM 发表于 2019-8-21 17:40
梦游枪手 发表于 2019-8-21 17:32
贴个keygen代码吧,照着伪代码搬了不少,不要在意变量名这些细节。还有就是这个算法效率有点低。 ...

Keygen中文出来的激活码不正确啊
...
梦游枪手 发表于 2019-8-21 17:43
GCM 发表于 2019-8-21 17:40
Keygen中文出来的激活码不正确啊
...

我没对中文做处理,也不想做处理了
GCM 发表于 2019-8-21 17:44
梦游枪手 发表于 2019-8-21 17:43
我没对中文做处理,也不想做处理了

呃...好吧.....
梦游枪手 发表于 2019-8-21 17:56

CM是用signed char来接收字符的,python又不好把unsigned类型转成signed,就只能这样了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 14:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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