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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 74604|回复: 357
收起左侧

[原创] XX宝宝起名软件 V23.6 算法分析

    [复制链接]
Sendige 发表于 2017-1-17 13:48
本帖最后由 zjh16529 于 2019-6-6 18:50 编辑

因为看到论坛有人需要这个软件的算法分析,所以无聊就写下这篇文章和大家一起交流学习,这篇算法分析比较适合新手学习,因为算法比较简单。 1.png
该软件是一个易语言软件,所以直接下易语言按钮事件断下,找关键的算法call

004A802A /.  55            push ebp                                 ;  注册算法
004A802B |.  8BEC          mov ebp,esp
004A802D |.  81EC 34000000 sub esp,0x34
004A8033 |.  C745 FC 00000>mov[local.1],0x0
004A803A |.  C745 F8 00000>mov[local.2],0x0
004A8041 |.  C745 F4 00000>mov[local.3],0x0
004A8048 |.  6A 01         push 0x1
004A804A |.  B8 ED6F6D00   mov eax,生辰八字.006D6FED                    ;  wenyuhao
004A804F |.  8945 F0       mov [local.4],eax
004A8052 |.  8D45 F0       lea eax,[local.4]
004A8055 |.  50            push eax
004A8056 |.  68 D0C38A00   push 生辰八字.008AC3D0                       ; 8}Z\t
004A805B |.  68 84C48A00   push 生辰八字.008AC484

上面这段就是算法的开始,我们一步一步分析,因为这个算法比较简单,适合新手去学习练手!!

004A812C |.  83C4 04       add esp,0x4
004A812F |>  58            pop eax
004A8130 |.  8945 FC       mov [local.1],eax
004A8133 |.  6A FF         push -0x1
004A8135 |.  6A 08         push 0x8
004A8137 |.  68 0F940216   push 0x1602940F
004A813C |.  68 27540152   push 0x52015427
004A8141 |.  E8 82E40800   call 生辰八字.005365C8                       ;  获取我输入的假码
004A8146 |.  83C4 10       add esp,0x10
004A8149 |.  8945 F0       mov [local.4],eax
004A814C |.  68 04000080   push 0x80000004
004A8151 |.  6A 00         push 0x0
004A8153 |.  8B45 F0       mov eax,[local.4]
004A8156 |.  85C0          test eax,eax
004A8158 |.  75 05         jnz short 生辰八字.004A815F


2.png

004A8182 |.  83C4 04       add esp,0x4
004A8185 |>  68 45C26300   push 生辰八字.0063C245                       ;  '
004A818A |.  FF75 EC       push [local.5]
004A818D |.  68 3BDB6E00   push 生辰八字.006EDB3B                       ;  pass='
004A8192 |.  B9 03000000   mov ecx,0x3
004A8197 |.  E8 B292F5FF   call 生辰八字.0040144E
004A819C |.  83C4 0C       add esp,0xC
004A819F |.  8945 E8       mov [local.6],eax
004A81A2 |.  8B5D EC       mov ebx,[local.5]
004A81A5 |.  85DB          test ebx,ebx

“Pass=”和假码合并

pass='123456789'

然后一直下去会进行一些没关紧要的操作,这些可以忽略不理。

004A8234 |.  83C4 04       add esp,0x4
004A8237 |>  58            pop eax
004A8238 |.  8945 F8       mov [local.2],eax
004A823B |.  6A FF         push -0x1
004A823D |.  6A 08         push 0x8
004A823F |.  68 0F940216   push 0x1602940F
004A8244 |.  68 27540152   push 0x52015427
004A8249 |.  E8 7AE30800   call 生辰八字.005365C8    继续取出假码
004A824E |.  83C4 10       add esp,0x10
004A8251 |.  8945 F0       mov [local.4],eax
004A8254 |.  68 04000080   push 0x80000004
004A8259 |.  6A 00         push 0x0
004A825B |.  8B45 F0       mov eax,[local.4]
004A825E |.  85C0          test eax,eax
004A8260 |.  75 05         jnz short 生辰八字.004A8267
------------------------------------------------------------------------------------------------------------------------------------------------------

004A828A |.  83C4 04       add esp,0x4
004A828D |>  68 45C26300   push 生辰八字.0063C245                       ;  '
004A8292 |.  FF75 EC       push [local.5]
004A8295 |.  68 3BDB6E00   push 生辰八字.006EDB3B                       ;  pass='
004A829A |.  B9 03000000   mov ecx,0x3
004A829F |.  E8 AA91F5FF   call 生辰八字.0040144E
004A82A4 |.  83C4 0C       add esp,0xC
004A82A7 |.  8945 E8       mov [local.6],eax
004A82AA |.  8B5D EC       mov ebx,[local.5]
004A82AD |.  85DB          test ebx,ebx
继续“Pass=”和假码合并
pass='123456789'
------------------------------------------------------------------------------------------------------------------------------------------------------

004A833C |.  83C4 04       add esp,0x4
004A833F |>  58            pop eax
004A8340 |.  8945 F4       mov [local.3],eax
004A8343 |.  68 04000080   push 0x80000004
004A8348 |.  6A 00         push 0x0
004A834A |.  A1 D4C38A00   mov eax,dword ptr ds:[0x8AC3D4]          ; 机器码序列号,请记下这个全局变量[0x8AC3D4]
004A834F |.  85C0          test eax,eax

我这里的机器码为:2018682084
3.png

004A8368 |.  83C4 10       add esp,0x10
004A836B |.  8945 E4       mov [local.7],eax
004A836E |.  8955 E8       mov [local.6],edx
004A8371 |.  DF6D E4       fild qword ptr ss:[ebp-0x1C]
004A8374 |.  DD5D E4       fstp qword ptr ss:[ebp-0x1C]
004A8377 |.  DD45 E4       fld qword ptr ss:[ebp-0x1C]
004A837A |.  DC0D 09C46300 fmul qword ptrds:[0x63C409]             ;  机器码×323    注意这里的操作都是以10进制操作
004A8380 |.  DD5D DC       fstp qword ptr ss:[ebp-0x24]
004A8383 |.  68 01060080   push 0x80000601
004A8388 |.  FF75 E0       push [local.8]
004A838B |.  FF75 DC       push [local.9]
004A838E  |.  6801000000   push 0x1
004A8393 |.  BB 907A5300   mov ebx,生辰八字.00537A90
4.png

这里就是机器码*323
2018682084*323= hex (D0460BAC)


5.png

004A839D |.  83C4 10       add esp,0x10
004A83A0 |.  68 01030080   push 0x80000301
004A83A5 |.  6A 00         push 0x0
004A83A7 |.  50            push eax
004A83A8 |.  68 01000000   push 0x1
004A83AD |.  BB E08C5300   mov ebx,生辰八字.00538CE0
004A83B2 |.  E8 F9E10800   call 生辰八字.005365B0                       ;  将结果转换为10进制
004A83B7 |.  83C4 10       add esp,0x10
004A83BA |.  8945 D4       mov [local.11],eax
6.png

经典的易语言文本比较

004A83D0 |.  83C4 10       add esp,0x10
004A83D3 |.  8945 D0       mov [local.12],eax
004A83D6 |.  8B45 D4       mov eax,[local.11]
004A83D9 |.  50            push eax
004A83DA |.  FF75 D0       push [local.12]
004A83DD |.  E8 648FF5FF   call 生辰八字.00401346
004A83E2 |.  83C4 08       add esp,0x8
004A83E5 |.  83F8 00       cmp eax,0x0
004A83E8 |.  B8 00000000   mov eax,0x0
004A83ED |.  0F94C0        sete al
004A83F0 |.  8945 CC       mov [local.13],eax
004A83F3 |.  8B5D D0       mov ebx,[local.12]
004A83F6 |.  85DB          test ebx,ebx


7.png

爆破的话修改下面跳转就可以了,我们现在是学算法分析,所以我们不玩爆破。

总结:注册码=机器码* 323


8.png

知道了注册码怎么计算出来的,现在我们来找出机器码的算法。

刚才叫大家记下这个全局变量[0x8AC3D4]

现在我们搜索这个常量
9.png

全部都下上断点

00401F16  .  5E            pop esi                                  ;  057ACA30
00401F17  .  8BF8          mov edi,eax
00401F19  .  F3:A4         rep movs byte ptr es:[edi],byte ptrds:[>
00401F1B  >  50            push eax
00401F1C  .  8B1D D4C38A00 mov ebx,dword ptrds:[0x8AC3D4]
00401F22  .  85DB          test ebx,ebx
00401F24  .  74 09         je short 生辰八字.00401F2F
00401F26  .  53            push ebx
00401F27  .  E8 7E461300   call 生辰八字.005365AA
00401F2C  .  83C4 04       add esp,0x4

我们发现在这里断下,这时候,eax已经出现了机器码,我们往上找,看看机器码怎么计算出来的。


00401DDD  .  6A 00         push 0x0
00401DDF  .  6A 00         push 0x0
00401DE1  .  6A 00         push 0x0
00401DE3  .  68 07000700   push 0x70007
00401DE8  .  6A 00         push 0x0
00401DEA  .  FF35 CCC38A00 push dword ptrds:[0x8AC3CC]
00401DF0  .  68 02000000   push 0x2
00401DF5  .  B8 06000000   mov eax,0x6
00401DFA  .  BB 60965C00   mov ebx,生辰八字.005C9660
00401DFF  .  E8 B8471300   call 生辰八字.005365BC
00401E04  .  83C4 1C       add esp,0x1C
00401E07  . 8B1D CCC38A00 mov ebx,dword ptr ds:[0x8AC3CC]
00401E0D  .  83C3 08       add ebx,0x8
00401E10  .  895D FC       mov dword ptr ss:[ebp-0x4],ebx
00401E13  .  68 04000080   push 0x80000004
00401E18  .  6A 00         push 0x0
00401E1A  .  8B5D FC       mov ebx,dword ptr ss:[ebp-0x4]
00401E1D  .  8B03          mov eax,dword ptr ds:[ebx]
00401E1F  .  85C0          test eax,eax
00401E21  .  75 05         jnz short 生辰八字.00401E28
00401E23  .  B8 44C26300   mov eax,生辰八字.0063C244
00401E28  >  50            push eax
00401E29  .  68 01000000   push 0x1
00401E2E  .  BB 10845300   mov ebx,生辰八字.00538410

这里是取硬盘序列号

我这里是  S248NXAH110569Z

00401E51  > \50            push eax
00401E52  .  68 01000000   push 0x1
00401E57  .  B8 0E000000   mov eax,0xE
00401E5C  .  BB 20E65D00   mov ebx,生辰八字.005DE620
00401E61  .  E8 56471300   call 生辰八字.005365BC
00401E66  .  83C4 10       add esp,0x10
00401E69  .  8945 F4       mov dword ptr ss:[ebp-0xC],eax
00401E6C  .  8B5D F8       mov ebx,dword ptr ss:[ebp-0x8]
00401E6F  .  85DB          test ebx,ebx                             ;  生辰八字.005DE620

将硬盘序列号进行MD5操作  

10.png

00401E93  > \58            pop eax
00401E94  .  A3 D0C38A00   mov dword ptr ds:[0x8AC3D0],eax
00401E99  .  68 00000000   push 0x0
00401E9E  .  BB F0CC5300   mov ebx,生辰八字.0053CCF0
00401EA3  .  E8 08471300   call 生辰八字.005365B0
00401EA8  .  83C4 04       add esp,0x4
00401EAB  .  8945 F4       mov dword ptr ss:[ebp-0xC],eax
00401EAE  .  DB45 F4       fild dword ptr ss:[ebp-0xC]
00401EB1  .  DD5D F4       fstp qword ptr ss:[ebp-0xC]
00401EB4  .  DD45 F4       fld qword ptr ss:[ebp-0xC]
00401EB7  .  DC05 F2C36300 fadd qword ptrds:[0x63C3F2]
00401EBD  .  DD5D EC       fstp qword ptr ss:[ebp-0x14]
00401EC0  .  68 01060080   push 0x80000601
00401EC5  .  FF75 F0       push dword ptr ss:[ebp-0x10]
00401EC8  .  FF75 EC       push dword ptr ss:[ebp-0x14]             ; 生辰八字.008B8680
00401ECB  .  68 01000000   push 0x1
00401ED0  .  BB E08C5300   mov ebx,生辰八字.00538CE0

这段其实就是易语言的取硬盘特征字命令,我在这里浪费了不少时间才得知是这个命令

00401EA3  .  E8 08471300   call 生辰八字.005365B0   F7进入
11.png
百度了一下上图圈出的关键字,得出是取硬盘信息相关的命令。

12.png
上图这段就是进行各种硬盘信息操作,得出最后的取硬盘特征字

13.png

把硬盘模型号的ASCII进行相加
14.png
拿出硬盘版本  EMT41B6Q  进行ASCII相加

其他几个就不一一说了,都是拿下面这些信息进行运算。

硬盘模型号   Samsung SSD 850 EVO mSATA250GB
版本   EMT41B6Q
硬盘序列号   S248NXAH110569Z
磁头数   16
柱面数   266305
容量   131071
缓存大小   0
每磁道扇区数   63
第一硬盘特征字是:1079414944
15.png


最后得出第一硬盘特征字是:1079414944
16.png

然后将盘特征字和3086910975进行相加操作,最后就得出机器码。
17.png
附上软件和Keygen
链接:http://pan.baidu.com/s/1dF9mGqX 密码:jxxg

点评

这软件算法很简单,在总结算法过程中也没什么逻辑。主要在循环指针那。技术上不提问题了,很好。提点教程上的。在那一句中,应该有图,把所涉及到的指针都打出来。这样最好。谢谢 发表于  发表于 2017-1-17 15:42

免费评分

参与人数 46威望 +2 吾爱币 +58 热心值 +45 收起 理由
新四海 + 1 谢谢@Thanks!
dulian + 1 + 1 谢谢@Thanks!
佛山李小龙 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
麓林野鹤 + 1 + 1 谢谢@Thanks!
tothesun + 1 + 1 谢谢@Thanks!
5911521 + 2 + 1 导出 MS还有暗装 测试导出空白
滑来滑去 + 1 + 1 我很赞同!
see322 + 1 + 1 谢谢@Thanks!
wwt147 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
HYGYP + 1 + 1 谢谢@Thanks!
foundergx + 1 + 1 谢谢@Thanks!
hy942653 + 1 + 1 谢谢@Thanks!
蓝烟火 + 1 + 1 已答复!
tail88 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
2864095098 + 1 热心回复!
房前屋后 + 1 + 1 谢谢@Thanks!
qiaomang + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
asdfkkkk + 1 + 1 谢谢@Thanks!
zhaosy1111 + 1 + 1 我很赞同!
Alyoyojie + 1 + 1 用心讨论,共获提升!
enzur + 1 谢谢@Thanks!
sdacan + 1 + 1 我很赞同!
听见月光丶 + 1 + 1 谢谢@Thanks!
aysrhy + 1 + 1 热心回复!
zhangbaida + 2 + 1 鼓励转贴优秀软件安全工具和文档!
wanfeienglish + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
guan1021 + 1 + 1 热心回复!
Alog + 1 + 1 热心回复!
dadao815 + 1 + 1 谢谢@Thanks!
li6893 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ii23456ii + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
不小于3个字符 + 1 我很赞同!
lgg51 + 1 + 1 谢谢@Thanks!
lyms2016 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
yanglinman + 1 鼓励转贴优秀软件安全工具和文档!
anwzx + 2 + 1 我很赞同!
ted322 + 1 + 1 谢谢@Thanks!
XX19951213 + 1 + 1 热心回复!
酒醒黄昏 + 1 + 1 膜拜大牛
Hmily + 2 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
李小木 + 1 + 1 热心回复!
rzlsysw01 + 1 + 1 谢谢@Thanks!
KaQqi + 3 + 1 我很赞同!
爱情街 + 1 + 1 谢谢@Thanks!
faithg + 1 + 1 热心回复!
论坛守护神 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

  • · 写作|主题: 5, 订阅: 0

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

maoxiaosen 发表于 2017-3-19 20:42
楼主,不错啊,膜拜   希望能照顾一下  我也有一个小程序  我有机器码和注册码  希望楼主能帮我破解一下  我的QQ 1136167983  本人是在老家养鹅的(鹅蛋多,哈哈)
灌肠儿 发表于 2018-6-10 17:57
zxcp_158 发表于 2018-5-9 14:55
刚才暗恋的女老师往楼下吐痰,我跑过去一下接住 了刚好吐在我嘴里,那痰香甜润滑,晶莹剔透,我连忙 伸大拇 ...

你是何等的人物呀~~~超凡脱俗~~
小锤子起钉儿 发表于 2017-1-17 14:07
头像被屏蔽
liuhaijiji5807 发表于 2017-1-17 14:15
提示: 作者被禁止或删除 内容自动屏蔽
gutifeng 发表于 2017-1-17 14:33

谢谢楼主分享
faithg 发表于 2017-1-17 14:45
感谢分享,分析的很详细,知道参考学习
嘟baby 发表于 2017-1-17 14:46
收藏了,支持楼主
爱情街 发表于 2017-1-17 14:56
这个不止有软件还有破解经过 厉害
奥特鲁克 发表于 2017-1-17 14:58
真是个好动西啊
KaQqi 发表于 2017-1-17 14:59
你就是那个星空之上?我在那个论坛给你点评了
fly200809 发表于 2017-1-17 15:00
学习了 这个会用到的 {:1_912:}
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-26 04:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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