heing 发表于 2010-4-30 21:35

一个双层壳追踪注册码的全过程

本帖最后由 heing 于 2010-5-1 00:41 编辑

大家好!这是我第二次发表的文章,谢谢大家的支持!
下面介绍这款软件:记忆力训练软件

软件介绍: 这是一款简单易用的记忆力训练软件
这款软件的下载地址百度里查,我就不给地址了!
声明: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
不得将内容用于商业或者非法用途,否则,一切后果请用户自负。

peid查壳一下

               
查一下壳发现是ASPACK2.12的,其实它里面还有一个是老王壳!
用外部扫描一下是 ASProtect V2.X DLL -> Alexey Solodovnikov *


                                             





看区段有EPE,估计是老王的! 用ESP定律脱出来的是ASPROTECT 的壳!

把软件试注册一下,注意你会发现在D盘里生成一个dosame的文件夹!下面我们开始吧!
这个我已经注册了。

该软件是通过机器码来算注册码的,我的机器码是9713454651

注意:如果OD载入,自动退出的话,要换一个OD。下面就是具体过程!
下bp GetPrivateProfileStringA
**************************************************************************
当堆栈窗口出现下面的信息:
03A9D6EC   0128C6D3/CALL 到 GetPrivateProfileStringA 来自 krnln.0128C6CD
03A9D6F0   0040C8A3|Section = "记忆力训练软件"
03A9D6F4   0040C325|Key = "注册码"
03A9D6F8   013112B4|Default = ""
03A9D6FC   03A9D720|ReturnBuffer = 03A9D720
03A9D700   00002800|BufSize = 2800 (10240.)
03A9D704   0024A520\IniFileName = "D:\Dosame\Dosamesoft.p"
03A9D708   77D18734返回到 USER32.77D18734
*********
Alt+F9返回!!!返回到程序的领空!
**************************************************************************
0128C6D3   8D5424 18                     lea edx,dword ptr ss:       出现假码
0128C6D7   52                                     push edx
0128C6D8   E8 3358FEFF                     call krnln.01271F10          这个call没有收获      
0128C6DD   8B8C24 2C280000         mov ecx,dword ptr ss:
0128C6E4   83C4 04                           add esp,4
0128C6E7   C78424 20280000 FFFF>   mov dword ptr ss:,-1
0128C6F2   C74424 04 183C2E01       mov dword ptr ss:,krnln.012E3C18
0128C6FA   8901                                 mov dword ptr ds:,eax
0128C6FC   8D4C24 04                     lea ecx,dword ptr ss:
0128C700   E8 7BD3FBFF                  call krnln.01249A80          这个call没有收获
0128C705   8B8C24 18280000         mov ecx,dword ptr ss:
0128C70C   5E                                    pop esi
0128C70D   64:890D 00000000         mov dword ptr fs:,ecx
0128C714   81C4 20280000               add esp,2820
0128C71A   C3                   retn                                       直接到返回,好像要返回3-4次
********************************************************************************
当出现不在返回时,第一个CALL就是算法CALL。
00537CB2   FF35 24226701      push dword ptr ds:
00537CB8   8D45 F4                  lea eax,dword ptr ss:
00537CBB   50                           push eax
00537CBC   E8 BC000000         call 记忆力训.00537D7D             在这里F7
00537CC1   8945 F0                  mov dword ptr ss:,eax
00537CC4   8B5D F4                  mov ebx,dword ptr ss:
00537CC7   85DB                         test ebx,ebx
********************************************************************************
进入算法CALL的标志是下面的代码:
00537D7D   55                               push ebp
00537D7E   8BEC                           mov ebp,esp
00537D80   81EC 70000000          sub esp,70
00537D86   C745 FC 00000000   mov dword ptr ss:,0
00537D8D   C745 F8 00000000   mov dword ptr ss:,0
00537D94   C745 F4 00000000   mov dword ptr ss:,0
00537D9B   C745 F0 00000000   mov dword ptr ss:,0
00537DA2   C745 EC 00000000   mov dword ptr ss:,0
*******************************************************
00537E40   83C4 10            add esp,10
00537E43   8945 B8            mov dword ptr ss:,eax
00537E46   8955 BC            mov dword ptr ss:,edx
00537E49   DD45 B8            fld qword ptr ss:
00537E4C   DC35 2CC34000      fdiv qword ptr ds:
00537E52   DD5D B0            fstp qword ptr ss:
00537E55   68 01060080          push 80000601
00537E5A   FF75 B4            push dword ptr ss:
00537E5D   FF75 B0            push dword ptr ss:
00537E60   68 01000000          push 1
00537E65   BB 60000000          mov ebx,60
00537E6A   E8 89A20200          call 记忆力训.005620F8
00537E8E   83C4 10            add esp,10
00537E91   8945 BC            mov dword ptr ss:,eax    机器码变为"1079272739" ,这是(我的机器码/9)得的数!
00537E94   68 01030080          push 80000301
********************************************************************************
经过一系列的浮点运算~~~发现这个地方老是和假码对比!!!
0053832D   8B5D 08            mov ebx,dword ptr ss:
00538330   8B03               mov eax,dword ptr ds:    这里有可疑!
00538332   85C0               test eax,eax
00538334   75 05                jnz short 记忆力训.0053833B
00538336   B8 CAC24000          mov eax,记忆力训.0040C2CA
*******************************************************
下面是我找到的注册码信息:

堆栈 ds:=039A61F0, (ASCII "1111111111")
eax=0024A468, (ASCII "988")
**********************************************************
eax=039A6598, (ASCII "266027380")
堆栈 ss:=039A6598, (ASCII "266027380")
**********************************************************
堆栈 ds:=039A61F0, (ASCII "1111111111")
eax=039A6598, (ASCII "187695")
**********************************************************
堆栈 ss:=039A6598, (ASCII "33257")
eax=039A6598, (ASCII "33257")
**********************************************************
堆栈 ss:=039A6518, (ASCII "3325")
ebx=039A64F8
**********************************************************
堆栈 ss:=039A24F8, (ASCII "5320")
ebx=039A6518
**********************************************************
堆栈 ss:=039A6558, (ASCII "18")
ebx=039A24F8
堆栈 ss:=039A6578, (ASCII "7695")
ebx=039A6558
**********************************************************
机器码:9713454651
注册码:988266027380 187695 33257 5320   


软件注册了!

其实我对这款软件的兴趣是他的第二个软件!

方法是差不多的,但是要返回下 bp GetPrivateProfileStringA 要找到恰当的返回时机!
还有那个算法CALL是retn 3-4后的第二个CALL。注意分析就行~呵呵~



晕哦!DEMO版~~悲剧
这软件的作者还留一手啊~~~

下面我把第一破解的软件的分析过程上传上来!~




YoungBai 发表于 2014-6-4 20:47

不要怪我挖坟啊.前段时间也是分析这个软件.头都大了.后来直接放弃了.看到有人说论坛有人写过分析.一直没找到.今天偶然又遇到这个软件公司另外一个软件.然后就找楼主的贴了.楼主分析的很细致.感谢分享.

zdix 发表于 2010-4-30 22:16

有意义!!!

heing 发表于 2010-4-30 22:22

下面我把这软件的分析结果发一下!我把它们都打包吧!免得浪费大家的CB~




那个分析第二软件的时候,注意那个中间那部分注册码,那部分好像放到后面的。

希望高手给我分析一下那个算法是怎么搞来的?

谢谢大家!~

405817530 发表于 2010-5-1 00:55

这软件有什么用啊???

heing 发表于 2010-5-1 01:15

纯粹是学习的目的~ 我研究第一个软件的目的是就了破解第二的,本着想一起破解算了。
第二个软件可能有点用吧~~希望大鸟提一下意见~

Hmily 发表于 2010-5-1 01:48

带壳调试不错!第一篇主题帖加精鼓励!

新颖轻 发表于 2010-5-1 10:47

这回又学到了好东西!!谢谢楼主分享!

heing 发表于 2010-5-1 11:06

谢谢大家的支持与鼓励~ 我虽然弄清了算法的过程,但是还是弄不清其中的95是什么条件才相乘的?

ssjian 发表于 2010-5-1 19:24

学习了,看来想学破解还得回去把以前学的汇编在再重学边

zeknight 发表于 2010-5-1 19:38

本帖最后由 zeknight 于 2010-5-1 19:46 编辑

我晕~~~原来楼主和我关心的是一样的啊!!

我也尝试破解这款软件~~不过在脱壳的时候遇到麻烦~

能详细的描述一下你脱壳的过程吗??
页: [1] 2 3 4
查看完整版本: 一个双层壳追踪注册码的全过程