吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20570|回复: 74
收起左侧

[原创] 某二进制分析软件 9.0注册机算法分析和爆破版(免注册机版)

  [复制链接]
kalikai 发表于 2018-12-31 02:14
本帖最后由 zjh16529 于 2019-6-6 18:44 编辑

010 editor的名声我就不用多说了,用过这个神器的大家都懂,特别对一些二进制文件进行分析时,简直是神器。
而我最喜欢用的就是在文件夹中搜索特定的二进制数据。好了,废话就不多说,我来详尽的分析一下010 Editorde 注册码算法。
现在官网最新版9.0版本,有兴趣的童鞋请前往官网下载。
1.png

0x1.安装后,打开界面会提示有30天的注册期。
2.png


0x2.我们先输入一个假的Name和Password,看看有没有一些有用提示信息。
3.png

0x3.提示错误信息。把010Editor.exe拖入IDA进行分析。搜索其关键字符串。
4.png
5.png

0x4.完成定位。继续分析。发现其错误信息和正确信息提示,是基于此关键此函数的算法而生成返回结果。当算法返回值为0XDB时,提示注册成功。
6.png
7.png


0x5.继续往前定位,定位到文本输入函数。此处将Name 、Password输入到全局的 staticDataBuffer变量中。
并把staticDataBuffer作为输入,输入到关键算法函数。
8.png

9.png

0x6.继续进入分析,分析其关键算法。
  该算法有算法1和算法2。
  算法1计算password,输出特定数据。当输出特定数据,并且特定数据的某位字节数(v25)为0x9C时,才能进入算法2.
  算法2计算Name,输出特定数据。
  最后对双方输出的数据进行比较。
  如果比较成功则返回0x2D。

11.png
7.png


7.对于算法1(Password算法),password的计算方法,本人粗略的看了下,算法取password的每一位进行加减计算。并返回。
12.png
13.png

算法2(Name算法),把Name的每一个字节与存好的数据进行加减乘除异或操作。
15.png

16.png


8.至此,010 editor算法分析完毕。本人比较懒,不想写注册机算法。于是采用了直接爆破的方法。
打开OD,定位到执行的位置。修改其校验返回值。有几个返回值,此处不再累述。
17.png

生成打补丁后的可执行文件。



18.png
9.至此,破解完毕,输入任意Name Password均可使用。

10.上传破解版附件,欢迎大家下载最新版使用。
链接:https://pan.baidu.com/s/1gqmL5b759EPy2ylN971Aqw
提取码:gde3
复制这段内容后打开百度网盘手机App,操作更方便哦


不好意思大家,图片被吾爱吞了,而且图片排版严重错乱,但是每天上传附件数只有50,故明天再把图片整理,发上来,现在只有纯文字。。。
重新更新了下,图片全有了,但是实在不会用吾爱发帖的附件,导致后面图片重复了。大家将就的看下吧。













17.png
19.png
20.png
17.png
3.png
18.png
16.png
12.png
9.png
2.png
1.png

免费评分

参与人数 17威望 +1 吾爱币 +22 热心值 +16 收起 理由
软软? + 1 + 1 我很赞同!
五元素神 + 1 我很赞同!
落日余辉x + 1 + 1 0 User License是什么鬼
琉璃神社 + 1 + 1 热心回复!
碧水蓝天 + 1 谢谢@Thanks!
Hmily + 1 + 8 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
涛之雨 + 2 + 1 趁着没有图片赶紧评个分
csq0216 + 1 我很赞同!
哎黑细作 + 1 + 1 热心回复!
老罗791 + 1 + 1 我很赞同!
fangchang819 + 1 谢谢@Thanks!
loversoft + 1 谢谢@Thanks!
Hughes_LHZ + 1 热心回复!
kewang0878 + 1 + 1 谢谢@Thanks!
wangxp + 1 + 1 谢谢@Thanks!
忆江南 + 1 + 1 谢谢@Thanks!
爱飞的猫 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

8091956 发表于 2019-1-9 12:31
本帖最后由 8091956 于 2019-1-9 12:33 编辑

我用python写了个注册机(IDA真好用
[Python] 纯文本查看 复制代码
TABLE = [       0x39cb44b8, 0x23754f67, 0x5f017211, 0x3ebb24da, 0x351707c6, 0x63f9774b, 0x17827288, 0x0fe74821,
                0x5b5f670f, 0x48315ae8, 0x785b7769, 0x2b7a1547, 0x38d11292, 0x42a11b32, 0x35332244, 0x77437b60,
                0x1eab3b10, 0x53810000, 0x1d0212ae, 0x6f0377a8, 0x43c03092, 0x2d3c0a8e, 0x62950cbf, 0x30f06ffa,
                0x34f710e0, 0x28f417fb, 0x350d2f95, 0x5a361d5a, 0x15cc060b, 0x0afd13cc, 0x28603bcf, 0x3371066b,
                0x30cd14e4, 0x175d3a67, 0x6dd66a13, 0x2d3409f9, 0x581e7b82, 0x76526b99, 0x5c8d5188, 0x2c857971,
                0x15f51fc0, 0x68cc0d11, 0x49f55e5c, 0x275e4364, 0x2d1e0dbc, 0x4cee7ce3, 0x32555840, 0x112e2e08,
                0x6978065a, 0x72921406, 0x314578e7, 0x175621b7, 0x40771dbf, 0x3fc238d6, 0x4a31128a, 0x2dad036e,
                0x41a069d6, 0x25400192, 0x00dd4667, 0x6afc1f4f, 0x571040ce, 0x62fe66df, 0x41db4b3e, 0x3582231f,
                0x55f6079a, 0x1ca70644, 0x1b1643d2, 0x3f7228c9, 0x5f141070, 0x3e1474ab, 0x444b256e, 0x537050d9,
                0x0f42094b, 0x2fd820e6, 0x778b2e5e, 0x71176d02, 0x7fea7a69, 0x5bb54628, 0x19ba6c71, 0x39763a99,
                0x178d54cd, 0x01246e88, 0x3313537e, 0x2b8e2d17, 0x2a3d10be, 0x59d10582, 0x37a163db, 0x30d6489a,
                0x6a215c46, 0x0e1c7a76, 0x1fc760e7, 0x79b80c65, 0x27f459b4, 0x799a7326, 0x50ba1782, 0x2a116d5c,
                0x63866e1b, 0x3f920e3c, 0x55023490, 0x55b56089, 0x2c391fd1, 0x2f8035c2, 0x64fd2b7a, 0x4ce8759a,
                0x518504f0, 0x799501a8, 0x3f5b2cad, 0x38e60160, 0x637641d8, 0x33352a42, 0x51a22c19, 0x085c5851,
                0x032917ab, 0x2b770ac7, 0x30ac77b3, 0x2bec1907, 0x035202d0, 0x0fa933d3, 0x61255df3, 0x22ad06bf,
                0x58b86971, 0x5fca0de5, 0x700d6456, 0x56a973db, 0x5ab759fd, 0x330e0be2, 0x5b3c0ddd, 0x495d3c60,
                0x53bd59a6, 0x4c5e6d91, 0x49d9318d, 0x103d5079, 0x61ce42e3, 0x7ed5121d, 0x14e160ed, 0x212d4ef2,
                0x270133f0, 0x62435a96, 0x1fa75e8b, 0x6f092fbe, 0x4a000d49, 0x57ae1c70, 0x004e2477, 0x561e7e72,
                0x468c0033, 0x5dcc2402, 0x78507ac6, 0x58af24c7, 0x0df62d34, 0x358a4708, 0x3cfb1e11, 0x2b71451c,
                0x77a75295, 0x56890721, 0x0fef75f3, 0x120f24f1, 0x01990ae7, 0x339c4452, 0x27a15b8e, 0x0ba7276d,
                0x60dc1b7b, 0x4f4b7f82, 0x67db7007, 0x4f4a57d9, 0x621252e8, 0x20532cfc, 0x6a390306, 0x18800423,
                0x19f3778a, 0x462316f0, 0x56ae0937, 0x43c2675c, 0x65ca45fd, 0x0d604ff2, 0x0bfd22cb, 0x3afe643b,
                0x3bf67fa6, 0x44623579, 0x184031f8, 0x32174f97, 0x4c6a092a, 0x5fb50261, 0x01650174, 0x33634af1,
                0x712d18f4, 0x6e997169, 0x5dab7afe, 0x7c2b2ee8, 0x6edb75b4, 0x5f836fb6, 0x3c2a6dd6, 0x292d05c2,
                0x052244db, 0x149a5f4f, 0x5d486540, 0x331d15ea, 0x4f456920, 0x483a699f, 0x3b450f05, 0x3b207c6c,
                0x749d70fe, 0x417461f6, 0x62b031f1, 0x2750577b, 0x29131533, 0x588c3808, 0x1aef3456, 0x0f3c00ec,
                0x7da74742, 0x4b797a6c, 0x5ebb3287, 0x786558b8, 0x00ed4ff2, 0x6269691e, 0x24a2255f, 0x62c11f7e,
                0x2f8a7dcd, 0x643b17fe, 0x778318b8, 0x253b60fe, 0x34bb63a3, 0x5b03214f, 0x5f1571f4, 0x1a316e9f,
                0x7acf2704, 0x28896838, 0x18614677, 0x1bf569eb, 0x0ba85ec9, 0x6aca6b46, 0x1e43422a, 0x514d5f0e,
                0x413e018c, 0x307626e9, 0x01ed1dfa, 0x49f46f5a, 0x461b642b, 0x7d7007f2, 0x13652657, 0x6b160bc5,
                0x65e04849, 0x1f526e1c, 0x5a0251b6, 0x2bd73f69, 0x2dbf7acd, 0x51e63e80, 0x5cf2670f, 0x21cd0a03,
                0x5cff0261, 0x33ae061e, 0x3bb6345f, 0x5d814a75, 0x257b5df4, 0x0a5c2c5b, 0x16a45527, 0x16f23945
    ]
DW = 0x100000000

def user_pro(username, a2, a3, a4):
    v16 = 0
    length = len(username)
    i = 0
    if length <= 0:
        result = 0
    else:
        v13 = 0
        v14 = 0
        v7 = (15 * a4)%0x100
        v15 = (17 * a3)%0x100
        while i < length:
            upperName_char = ord(username[i].upper())
            v9 = (v16 + TABLE[upperName_char])%DW
            if a2:
                v10 = (TABLE[v7]\
                        + TABLE[v15]\
                        + TABLE[(upperName_char + 47)]\
                        * (TABLE[(upperName_char + 13)] ^ v9))%DW
                result = (TABLE[v14] + v10)%DW
                v16 = (TABLE[v14] + v10)%DW
            
            else:
                v12 = (TABLE[v7]\
                        + TABLE[v15]\
                        + TABLE[(upperName_char + 23)]\
                        * (TABLE[(upperName_char + 63)] ^ v9))%DW
                result = (TABLE[v13] + v12)%DW
                v16 = (TABLE[v13] + v12)%DW
            
            v14+= 19
            v14 %= 0x100
            i+=1
            v15 += 9
            v15 %= 0x100
            v7 += 13
            v7 %= 0x100
            v13 += 7
            v13 %= 0x100
    return result

from random import random as rnd
def guess_v8v9():
    while True:
        i = (int)(rnd()*0x10000)
        if ((((i^0x7892)+19760)^0x3421)%0x10000)%11==0 and ((((i^0x7892)+19760)^0x3421)%0x10000)//11 <= 1000:
            return i, ((((i^0x7892)+19760)^0x3421)%0x10000)//11
        
username = raw_input('Name: ').strip()
p = [0]*8
p[3] = 0x9c
v8, v9 = guess_v8v9()
def calc():
    user = user_pro(username, True, 0, v9)
    p[4] = user%0x100
    p[5] = (user>>8)%0x100
    p[6] = (user>>16)%0x100
    p[7] = (user>>24)%0x100  
calc()
p[2] = p[5]^(v8%0x100)
p[1] = p[7]^(v8>>8)
while True:
    p[0] = (int)(rnd()*256)
    v10 = (((p[6]^p[0])^0x18+61)%0x100)^0xa7
    if v10>=10: break
    
for i in range(8):
    if p[i]<16:
        p[i] = '0'+hex(p[i])[2:3].upper()
    else:
        p[i] = hex(p[i])[2:4].upper()
print('Password: %s%s-%s%s-%s%s-%s%s'%(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]))































































头像被屏蔽
vvking8 发表于 2018-12-31 07:26
xiawan 发表于 2018-12-31 08:15
忆江南 发表于 2018-12-31 08:39
非常感恩楼主的分享,祝福新年吉祥如意!
18692170518 发表于 2018-12-31 09:11 来自手机
加入吾爱一段时间了,被群里面的大神感染了,这种无私分享,互帮互助的精神深深的感染了我,虽然我们来自五湖四海,但我们的不断学习共同交流的目标是一致的,感谢吾爱这个大平台让我们有了交流的机会,谢谢
cwz 发表于 2018-12-31 09:16
谢谢楼主分享
yejianwei 发表于 2018-12-31 09:23

非常感恩楼主的分享,祝福新年吉祥如意!
mzhsohu 发表于 2018-12-31 10:17
感谢分享~!
轻舟自横 发表于 2018-12-31 10:55
感谢分享。学习一下。
baolei1988 发表于 2018-12-31 11:05
分析的很透彻啊
学习了
软件倒是没敢感觉
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-16 16:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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