吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13024|回复: 40
收起左侧

[原创] eXeScope算法分析

  [复制链接]
苏紫方璇 发表于 2015-5-7 19:45
大家好  我又来发(骗)帖(评)子(分)了前两天无意间发现我的eXeScope没有注册,所以就发了一篇爆破的帖子。
链接如下
eXeScope破解记录:http://www.52pojie.cn/thread-358993-1-1.html
eXeScope破解记录过程视频:http://www.52pojie.cn/thread-359136-1-1.html
今天下午正好没事,就把eXeScope的算法那部分代码仔细看了一下,终于分析出了算法的过程。
具体算法的位置请看上面两个帖子。下面直接上代码。
这是算法call的汇编代码。
[Asm] 纯文本查看 复制代码
004CBF7C      55            push ebp
004CBF7D      8BEC          mov ebp,esp
004CBF7F  |.  51            push ecx
004CBF80  |.  53            push ebx
004CBF81  |.  8955 FC       mov [local.1],edx
004CBF84  |.  8B45 FC       mov eax,[local.1]
004CBF87  |.  E8 B48EF3FF   call eXeScope.00404E40
004CBF8C  |.  33C0          xor eax,eax
004CBF8E  |.  55            push ebp
004CBF8F  |.  68 1BC04C00   push eXeScope.004CC01B
004CBF94  |.  64:FF30       push dword ptr fs:[eax]
004CBF97  |.  64:8920       mov dword ptr fs:[eax],esp
004CBF9A  |.  33DB          xor ebx,ebx
004CBF9C  |.  8B45 FC       mov eax,[local.1]
004CBF9F  |.  E8 AC8CF3FF   call eXeScope.00404C50                   ;  取注册码位数
004CBFA4  |.  83F8 0A       cmp eax,0xA                              ;  和0xA作对比  长度要等于10
004CBFA7  |.  75 5C         jnz short eXeScope.004CC005
004CBFA9  |.  8B55 FC       mov edx,[local.1]
004CBFAC  |.  B8 30C04C00   mov eax,eXeScope.004CC030                ;  ASCII "A1910"
004CBFB1  |.  E8 DE8FF3FF   call eXeScope.00404F94
004CBFB6  |.  48            dec eax
004CBFB7  |.  74 10         je short eXeScope.004CBFC9
004CBFB9  |.  8B55 FC       mov edx,[local.1]
004CBFBC  |.  B8 40C04C00   mov eax,eXeScope.004CC040                ;  ASCII "A1423"
004CBFC1  |.  E8 CE8FF3FF   call eXeScope.00404F94
004CBFC6  |.  48            dec eax
004CBFC7  |.  75 3C         jnz short eXeScope.004CC005              ; 
004CBFC9  |>  B8 02000000   mov eax,0x2
004CBFCE  |>  8B55 FC       /mov edx,[local.1]
004CBFD1  |.  8A5402 FF     |mov dl,byte ptr ds:[edx+eax-0x1]
004CBFD5  |.  80FA 30       |cmp dl,0x30
004CBFD8  |.  72 2B         |jb short eXeScope.004CC005              ;  前者小于后者跳转
004CBFDA  |.  80FA 39       |cmp dl,0x39
004CBFDD  |.  77 26         |ja short eXeScope.004CC005              ;  前者大于后者跳转
004CBFDF  |.  40            |inc eax
004CBFE0  |.  83F8 0B       |cmp eax,0xB
004CBFE3  |.^ 75 E9         \jnz short eXeScope.004CBFCE
004CBFE5  |.  8B45 FC       mov eax,[local.1]
004CBFE8  |.  0FB640 08     movzx eax,byte ptr ds:[eax+0x8]          ;  取第九位
004CBFEC  |.  8B55 FC       mov edx,[local.1]
004CBFEF  |.  0FB652 09     movzx edx,byte ptr ds:[edx+0x9]          ;  取第十位
004CBFF3  |.  03C2          add eax,edx                              ;  相加
004CBFF5  |.  B9 0A000000   mov ecx,0xA
004CBFFA  |.  33D2          xor edx,edx
004CBFFC  |.  F7F1          div ecx                                  ;  eax/ecx的商
004CBFFE  |.  83FA 04       cmp edx,0x4                              ;  eax/ecx的余数
004CC001  |.  75 02         jnz short eXeScope.004CC005
004CC003  |.  B3 01         mov bl,0x1                               ;  bl=1
004CC005  |>  33C0          xor eax,eax
004CC007  |.  5A            pop edx                                  ;  0018F56C
004CC008  |.  59            pop ecx                                  ;  0018F56C
004CC009  |.  59            pop ecx                                  ;  0018F56C
004CC00A  |.  64:8910       mov dword ptr fs:[eax],edx
004CC00D  |.  68 22C04C00   push eXeScope.004CC022
004CC012  |>  8D45 FC       lea eax,[local.1]
004CC015  |.  E8 7689F3FF   call eXeScope.00404990
004CC01A  \.  C3            retn
004CC01B   .^ E9 5483F3FF   jmp eXeScope.00404374
004CC020   .^ EB F0         jmp short eXeScope.004CC012
004CC022   .  8BC3          mov eax,ebx                              ;  返回值=bl
004CC024   .  5B            pop ebx                                  ;  0018F56C
004CC025   .  59            pop ecx                                  ;  0018F56C
004CC026   .  5D            pop ebp                                  ;  0018F56C
004CC027   .  C3            retn


算法过程,将注册码算出位数,与10比较,当等于10时进行下一步比较。之后是注册码必须包含A1910或者A1423,之后从第二位开始逐个检查注册码,如果注册码ascii码值小于30或者大于39就跳走失败。
ascii码值30-39,正好是0-9这10个数,综合上面,那么A1910或者A1423必定是在前五位出现。下边从004CBFE5开始是取第9-10位的ascii值,取完后相加,再除以10取余数,若余数等于4,就返回1,不是就返回0.
我自己写了一下模拟的算法,最后两位可以使这么10组数字
QQ截图20150507191541.png
这样,整个注册码的算法就分析完成了,综上所述,注册码规则应该是前五位是A1910或者A1423,之后三位是随意的数字,后两位相加后,个位数必须是8.
最后附上几个可用的注册码
注册名:随意填写
ID:A191012308
ID:A142332417
ID:A191000044
ID:A142356799
至此,eXeScope破解分析完成,感谢大家的支持
以上是个人的一些愚见,如有错误,还请大牛指正。谢谢
依然是说了N遍的话,如果觉得好或者学到了什么,还请给我支持和评分,热心和CB就不用藏着掖着了,评分又不会扣自己的分对不

点评

希望楼主能指明帖子中的(30)和(39)是16进制的,我刚看时就有点奇怪0的ascii码是48,9的是57.后来一想,原来是16进制的  发表于 2015-5-11 20:10
终于置顶,大神记得我啊!  发表于 2015-5-8 22:48

免费评分

参与人数 25热心值 +25 收起 理由
朱朱你堕落了 + 1 我很赞同!
daohang + 1 谢谢@Thanks!
aswin + 1 谢谢@Thanks!
74l1380819wwj + 1 我很赞同!
longruan + 1 谢谢@Thanks!
凌云9 + 1 我很赞同!
ll007 + 1 谢谢@Thanks!
szhorse + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
chaojiak47 + 1 已答复!
fenghaoda + 1 已答复!
wnfight + 1 我很赞同!
lenovo131 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.
linfengtai2008 + 1 我很赞同!
吃饭睡觉打豆豆 + 1 苏紫方璇大神不惜花5BC私密我,让我帮他加.
yutao531315 + 1 我勒个擦 这精华好容易的赶脚 我也要感觉整.
手写连笔王 + 1 学习了
htpidk + 1 谢谢@Thanks!
slink0 + 1 谢谢@Thanks!
蚯蚓翔龙 + 1 谢谢@Thanks!
kingcloud + 1 谢谢@Thanks!
cdweng + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
LoongKing + 1 算法头大
haoren + 1 http://www.52pojie.cn/thread-336827-1-1.
月光下の魔术师 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩.
bansjs + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩.

查看全部评分

本帖被以下淘专辑推荐:

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

Hmily 发表于 2015-5-8 15:28
eXeScope这算分析完了,可以直接搞个算法注册机成品吧,其实可以和前面帖子合并,加精鼓励期待更多分享。

点评

感谢老大的支持,我没写算法注册机是因为,这个程序算法很简单,很直观的就能自己拼凑出来注册码  发表于 2015-5-8 21:13
ixsec 发表于 2017-8-29 21:23

python 的生成代码附上

# -*- coding: utf-8 -*-
from random import choice

b = ["A1910","A1423"]
a = []
a1 = [0,9]
a2 = [0,9]
a3 = [0,9]

for i in range(0,10):
    for j in range(0,10):
        sum = ord(str(i))+ord(str(j))
        if int(sum)%10==4:
            a.append([i,j])

        else:
            pass
end2 = choice(a)
endend=str(end2[0])+str(end2[1])
#print(end2[0],end2[1])
aa = choice(b)
a123 = str(choice(a1))+str(choice(a2))+str(choice(a3))

print("eXeSc650 注册码为:",aa+a123+endend)
input("按任意键退出")

楼主可以的话,可否写个飘云阁的注册机生成的code,学习下~~

茂荣电子 发表于 2015-5-7 20:08
看不懂  呵呵

点评

看不懂的话可以看我上边的两个爆破的分析,如果觉得好还请评个分  发表于 2015-5-7 20:10
2314902431 发表于 2015-5-7 20:21
弱弱的说一句,这是神马?我一点都看不懂

点评

大神说笑了  发表于 2015-5-7 21:02
LoongKing 发表于 2015-5-7 20:22
算法头大,我还是喜欢简约...
lionshine 发表于 2015-5-7 21:14
现在这么简单的软件已经很少了。

点评

是的 我也就这点本事了,弄点超简单的软件  发表于 2015-5-7 21:46
cdweng 发表于 2015-5-7 22:09
谢谢楼主分享学习了
我是用户 发表于 2015-5-8 17:07
支持一下
moodykeke 发表于 2015-5-8 20:05 来自手机
研究算法高级多了,只研究过一次,水平有限,头都大了
蚯蚓翔龙 发表于 2015-5-8 20:20
分析算法感觉好牛逼,似乎A191056780这个ID也一样
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-17 06:49

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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