首页
社区
课程
招聘
[原创]一款vb软件的简单解密分析
发表于: 2007-10-20 20:20 5088

[原创]一款vb软件的简单解密分析

tzl 活跃值
10
2007-10-20 20:20
5088
一款vb软件的简单解密分析

某软件运行出现如下界面,未经授权不能使用:)



我们先下bp CreateFileA命令试一下,f9运行,结果发现与Cpxlh.bin文件相关,由此可以初步判定软件可能读取该文件已达到解锁的目的。

用VBExplorer可以直接找到入口点,来到这里:
00414B20    55               push ebp


f8单步向下走,来到这里

00414DE0    FFD3             call ebx


此call返回指定D盘的序列号"1869328458"

…………

继续f8单步向下走,来到这里:

00414E2D    FFD7             call edi                                       ; MSVBVM60.__vbaStrMove
00414E2F    50               push eax
00414E30    6A 01            push 1
00414E32    6A FF            push -1
00414E34    6A 01            push 1
00414E36    FF15 B4104000    call dword ptr ds:[<&MSVBVM60.__vbaFileOpen>]  ; MSVBVM60.__vbaFileOpen  打开文件
00414E3C    8D4D B4          lea ecx,dword ptr ss:[ebp-4C]
00414E3F    FF15 FC104000    call dword ptr ds:[<&MSVBVM60.__vbaFreeStr>]   ; MSVBVM60.__vbaFreeStr
00414E45    8D4D 94          lea ecx,dword ptr ss:[ebp-6C]
00414E48    FFD6             call esi
00414E4A    8B55 08          mov edx,dword ptr ss:[ebp+8]
00414E4D    8D42 3C          lea eax,dword ptr ds:[edx+3C]
00414E50    8985 F0FEFFFF    mov dword ptr ss:[ebp-110],eax
00414E56    50               push eax
00414E57    6A 01            push 1
00414E59    68 F8404100      push Jxkey.004140F8
00414E5E    FF15 90104000    call dword ptr ds:[<&MSVBVM60.__vbaInputFile>] ; MSVBVM60.__vbaInputFile  输入文件


此时寄存器信息:

EAX 001573EC UNICODE "D:\Cpxlh.bin"
ECX 0012FAC8
EDX 001573EC UNICODE "D:\Cpxlh.bin"
EBX 660E0DDB MSVBVM60.__vbaStrVarMove
ESP 0012F9F8
EBP 0012FB14

此时我们在D盘下新建一个文本文件,改名为Cpxlh.bin,文本内容暂时为1234567890保存。

继续f8向下走:

00414E88    FF15 4C104000    call dword ptr ds:[<&MSVBVM60.#520>]            ; MSVBVM60.rtcTrimVar  删除字串左边的空白字串
00414E8E    8D45 94          lea eax,dword ptr ss:[ebp-6C]
00414E91    50               push eax
00414E92    FFD3             call ebx                 读取文件Cpxlh.bin内容1234567890                                                           
00414E94    8BD0             mov edx,eax
00414E96    8D4D C0          lea ecx,dword ptr ss:[ebp-40]
00414E99    FFD7             call edi
00414E9B    8D4D 94          lea ecx,dword ptr ss:[ebp-6C]
00414E9E    FFD6             call esi
00414EA0    6A 01            push 1
00414EA2    FF15 60104000    call dword ptr ds:[<&MSVBVM60.__vbaFileClose>]  ; MSVBVM60.__vbaFileClose  关闭文件
00414EA8    8B4D C8          mov ecx,dword ptr ss:[ebp-38]
00414EAB    51               push ecx                序列号"1869328458"放在ecx中入栈
00414EAC    8B55 C0          mov edx,dword ptr ss:[ebp-40]
00414EAF    52               push edx                读取的文件内容放在edx中入栈
00414EB0    FF15 68104000    call dword ptr ds:[<&MSVBVM60.__vbaStrCmp>]     ; MSVBVM60.__vbaStrCmp    这里进行比较
00414EB6    85C0             test eax,eax
00414EB8    0F84 44010000    je Jxkey.00415002       相等则ok,不等则over
00414EBE    B9 04000280      mov ecx,80020004
00414EC3    898D 6CFFFFFF    mov dword ptr ss:[ebp-94],ecx


简单总结一下:可以看出软件读取指定盘D:\Cpxlh.bin这个文件,因此需要在D盘下新建一个文本文件,并改名为Cpxlh.bin,文本内容填写D盘序列号。



启动软件,运行则ok:),不过由于没有完整的安装程序,也只能到这步了 ,本文只是对技术的研究,无其他意图,若有疑义则立即删除.


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1478
活跃值: (4012)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
试了下,我的电脑上他读取C:\cpxlh.bin,没有读到就报错

00414E2F   .  50            PUSH EAX                                 ; /Arg4
00414E30   .  6A 01         PUSH 1                                   ; |Arg3 = 00000001
00414E32   .  6A FF         PUSH -1                                  ; |Arg2 = FFFFFFFF
改为
00414E2F     /E9 CE010000   JMP Jxkey.00415002
暴力解决:(
2007-10-22 15:14
0
雪    币: 442
活跃值: (1241)
能力值: ( LV12,RANK:1130 )
在线值:
发帖
回帖
粉丝
3
对话框“...考贝...” 拷贝?? 我晕
2007-10-22 16:53
0
游客
登录 | 注册 方可回帖
返回
//