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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5751|回复: 13
收起左侧

[原创] 某软件算法分析

[复制链接]
Liquor 发表于 2013-8-20 20:57
【文章标题】: 某软件算法分析
【文章作者】: Crack_Qs
【作者邮箱】: qs#ff0000.cc(#换@)
【软件名称】: 《十万个为什么》
【下载地址】: 自己搜索下载
【加壳方式】: aspack
【保护方式】: 本地验证
【使用工具】: OllyDbg
【操作平台】: Window xp
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
——————————————————————————–
【详细过程】
脱壳我就不写了,aspack脱壳很简单。
——————————————–
0047EA88   .  55            push ebp                                 ;  按钮事件开始
0047EA89   .  8BEC          mov ebp,esp
0047EA8B   .  B9 08000000   mov ecx,0×8
0047EA90   >  6A 00         push 0×0
0047EA92   .  6A 00         push 0×0
0047EA94   .  49            dec ecx
0047EA95   .^ 75 F9         jnz Xdumped_.0047EA90
0047EAC3   .  E8 E4A3F8FF   call dumped_.00408EAC
0047EAC8   .  837D F4 00    cmp dword ptr ss:[ebp-0xC],0×0
0047EACC   .  75 19         jnz Xdumped_.0047EAE7
0047EACE   .  BA 84ED4700   mov edx,dumped_.0047ED84                 ;  提示
0047EAD3   .  B8 8CED4700   mov eax,dumped_.0047ED8C                 ;    姓名不能为空!
0047EAD8   .  B9 30000000   mov ecx,0×30
0047EADD   .  E8 E256FFFF   call dumped_.004741C4
0047EB02   .  E8 A5A3F8FF   call dumped_.00408EAC
0047EB07   .  8B45 E8       mov eax,dword ptr ss:[ebp-0x18]          ;  取假码“12345678”放入EAX
0047EB0A   .  B9 0C000000   mov ecx,0xC                              ;  ECX放入“0xC” 即注册码标准长度为12位
0047EB0F   .  BA 01000000   mov edx,0×1
0047EB3D   .  8B45 D8       mov eax,dword ptr ss:[ebp-0x28]          ;  读取用户名
0047EB40   .  8D4D DC       lea ecx,dword ptr ss:[ebp-0x24]
0047EB43   .  BA A8ED4700   mov edx,dumped_.0047EDA8                 ;  读取字串“十万个为什么”
0047EB48   .  E8 3F57FFFF   call dumped_.0047428C                    ;  算法CALL
进算法CALL看一下
0047428C  /$  55            push ebp                                 ;  算法CALL开始
0047428D  |.  8BEC          mov ebp,esp
0047428F  |.  6A 00         push 0×0
00474291  |.  6A 00         push 0×0
00474293  |.  6A 00         push 0×0
004742BB  |.  E8 EC4BF9FF   call dumped_.00408EAC                    ;  用户名是否存在
004742C0  |.  837D F0 00    cmp [local.4],0×0
004742C4  |.  75 0F         jnz Xdumped_.004742D5
004742C6  |.  B8 28444700   mov eax,dumped_.00474428                 ;  Input String Can’t be Empty!
004742CB  |.  E8 38B1FDFF   call dumped_.0044F408
004742D8  |.  50            push eax
004742D9  |.  B9 06000000   mov ecx,0×6                              ;  取用户名长度6位
004742DE  |.  BA 01000000   mov edx,0×1
0047433C  |.  8B55 E8       mov edx,[local.6]                        ;  取用户名
0047433F  |.  8D45 F4       lea eax,[local.3]
00474342  |.  8B4D F4       mov ecx,[local.3]                        ;  取“十万个为什么”的前三个字节
00474345  |.  E8 C2FBF8FF   call dumped_.00403F0C
0047434A  |.  8D55 FC       lea edx,[local.1]
0047434D  |.  B8 0C000000   mov eax,0xC                              ;  增加到12位
00474352  |.  E8 F5FEFFFF   call dumped_.0047424C
00474357  |.  BB 01000000   mov ebx,0×1
0047435C  |>  8D45 FC       /lea eax,[local.1]
0047435F  |.  E8 2CFDF8FF   |call dumped_.00404090
00474364  |.  8BF3          |mov esi,ebx                             ;  用字串空格填充
00474366  |.  03F6          |add esi,esi
00474368  |.  8B55 F8       |mov edx,[local.2]
0047436B  |.  8A541A FF     |mov dl,byte ptr ds:[edx+ebx-0x1]
0047436F  |.  885430 FE     |mov byte ptr ds:[eax+esi-0x2],dl
00474373  |.  8D45 FC       |lea eax,[local.1]
00474376  |.  E8 15FDF8FF   |call dumped_.00404090
0047437B  |.  8B55 F4       |mov edx,[local.3]
0047437E  |.  8A541A FF     |mov dl,byte ptr ds:[edx+ebx-0x1]
00474382  |.  885430 FF     |mov byte ptr ds:[eax+esi-0x1],dl
00474386  |.  43            |inc ebx
00474387  |.  83FB 07       |cmp ebx,0×7                             ;  对用户名长度进行处理,不足6位补空格 多余6位减少
0047438A  |.^ 75 D0         \jnz Xdumped_.0047435C                   ;  该段计算就是把用户名和“十万个”字符,进行错位连接处理
计算后为 43 CA 72 AE 61 CD 63 F2 6B B8 5F F6
Crack_     43 72 61 63 6B 5F
“十万个” CA AE CD F2 B8 F6
004743A9  |> /8B45 FC       /mov eax,[local.1]
004743AC  |. |8A4418 FF     |mov al,byte ptr ds:[eax+ebx-0x1]        ;  取第一个字符“C”值为43
004743B0  |. |34 BB         |xor al,0xBB                             ;  和0xBB异或
004743B2  |. |25 FF000000   |and eax,0xFF                            ;  再和FF运算
004743B7  |. |8D55 E4       |lea edx,[local.7]
004743BA  |. |E8 6D4CF9FF   |call dumped_.0040902C                   ;  运算??xor187and255
004743BF  |. |8B45 E4       |mov eax,[local.7]                       ;  得到结果248 之后取结果第一位
004743C2  |. |FF30          |push dword ptr ds:[eax]                 ;  以此类推
004743C4  |. |8BC7          |mov eax,edi
004743C6  |. |E8 C5FCF8FF   |call dumped_.00404090
004743CB  |. |5A            |pop edx
004743CC  |. |885418 FF     |mov byte ptr ds:[eax+ebx-0x1],dl
004743D0  |. |43            |inc ebx
004743D1  |. |4E            |dec esi
004743D2  |.^\75 D5         \jnz Xdumped_.004743A9
004743D4  |>  E8 6FE6F8FF   call dumped_.00402A48                    ;  得到真注册码
EAX 00C46D3C ASCII ”212221272327″
———————————————————————————————————-
算法过程记录:
1.用户名限制为6位,多舍少补。
2.导入一个字串“十万个”
3.之后进行错位排列用户名与字串(如:121212)
4.值转换十进制进行计算(??xor187and255),结果取第一位,全部处理完后,第一位取的值即为真注册码。
——————————————————————————–
【版权声明】: 本文原创于Crack_Qs@红黑联盟专家堂, 转载请注明作者并保持文章的完整, 谢谢!
2012年11月30日 12:54:29

免费评分

参与人数 4热心值 +4 收起 理由
Chief + 1 欢迎分析讨论交流[吾爱破解论坛]有你更精彩.
你若安好 + 1 我很赞同!
LShang + 1 欢迎分析讨论交流,[吾爱破解论坛]有你更精.
小叨 + 1 加分鼓励

查看全部评分

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

1354669803 发表于 2013-8-20 21:00
Qs怎么今天这么有空奔放呢
 楼主| Liquor 发表于 2013-8-20 21:01
1354669803 发表于 2013-8-20 21:00
Qs怎么今天这么有空奔放呢

准备去管理团队看看雨妹

点评

珈蓝夜雨么?  发表于 2013-8-20 21:06
E_eYYF 发表于 2013-8-20 21:12
 楼主| Liquor 发表于 2013-8-20 21:14
E_eYYF 发表于 2013-8-20 21:12
QS爹真威猛!

你是?

E_eYYF 发表于 2013-8-20 21:37
Liquor 发表于 2013-8-20 21:14
你是?

小菜鸟一只,我的师叔是无nai..........
你若安好 发表于 2013-8-20 21:38
QS大好厉害啊。。先回复,再品味!
 楼主| Liquor 发表于 2013-8-20 21:48
E_eYYF 发表于 2013-8-20 21:37
小菜鸟一只,我的师叔是无nai..........

我了个艹,我貌似对这句话有印象,记得谁一直喊无聊时师叔。不会。。。。是你吧

马斯维尔 发表于 2013-8-20 21:51
QS牛今天真是大放送啊。谢谢了
E_eYYF 发表于 2013-8-20 22:06
Liquor 发表于 2013-8-20 21:48
我了个艹,我貌似对这句话有印象,记得谁一直喊无聊时师叔。不会。。。。是你吧

没错,正是小菜鸟,求QS爹带!湿书已死......
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-5-10 11:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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