朱朱你堕落了 发表于 2023-9-23 20:24

求助分析软件自校验

本帖最后由 朱朱你堕落了 于 2023-9-23 20:29 编辑

遇到个神奇的软件,求助大佬分析。

1
软件是安装包,就按默认的下一步,下一步安装,不做任何安装路径修改,那么默认安装在:C:\Program Files (x86)\BestNameProV21
好,这时,先不打开软件。把这个BestNameProV21文件夹复制一份,放到C盘要目录或,或者其他目录下。
迷之操作的时刻来了。

先来到C:\Program Files (x86)\BestNameProV21这个默认安装目录下,运行BestNamePro软件,点第一个“我要起名”,
OK,软件右侧正常显示出来。


https://im.gurl.eu.org/file/30a32181fb3cde059c43e.png

但是如果打开C盘下目录下的,运行BestNamePro软件,点第一个“我要起名”,软件就卡死了,动不了了,软件右侧
也不正常显示出来。

https://im.gurl.eu.org/file/6e96680800410dc42ef13.png

到底怎么回事?连路径都做检验,这不可能吧,这么神奇吗?

2
还是默认安装路径下,把软件去掉随机基址,并爆破。爆破修改如下:
00407C30      B8 01000000   mov eax,0x1
00407C35      C3            retn
00407C36      90            nop
00407C37      90            nop

同样出现,点“我要起名”后卡死的情况,应该就是有自校验了。

https://im.gurl.eu.org/file/ee27da58cc0bfa6665af1.png


注:以上测试在win7 x64虚拟机测试

求助问题:
软件是如何自校验的,自校验位置在哪里?难道把软件的md5值啥的放到main.dat这个SQLite数据库里做对比?
当然只是猜想,不知道SQLite数据库密码,能找出这个密码吗?

软件:https://www.123pan.com/s/YL29-L06Oh.html

无闻无问 发表于 2023-9-23 21:00

是同时打开,默认的行,另一个打开卡死?
还是默认路径那个关了,单独打开移动位置的卡死?

ZeNiX 发表于 2023-9-23 21:21

要求这两个相等。




解药

ZeNiX 发表于 2023-9-23 21:29

对了,大家都知道我的破解 SOP。

第一步是观察,
第二步是猜,
第三步验证第二步。

所以不要问我怎么找到这答案的。

vipcrack 发表于 2023-9-23 21:31

本帖最后由 vipcrack 于 2023-9-23 22:02 编辑

我要起名检测
002B2EF5    E8 36FBFFFF   call    002B2A30                         ; 这个CALL进去xor eax,eax ret回来
002B2EFA    8B86 DC030000   mov   eax, dword ptr
002B2F00    85C0            test    eax, eax
002B2F02    7C 10         jl      short 002B2F14
002B2F04    6A 02         push    0x2
002B2F06    6A 02         push    0x2
002B2F08    50            push    eax
002B2F09    8D8E 88030000   lea   ecx, dword ptr
002B2F0F    E8 DC620700   call    <jmp.&mfc90u.#6353>
002B2F14    8B86 E8050000   mov   eax, dword ptr
002B2F1A    85C0            test    eax, eax
002B2F1C    0F8E A0000000   jle   002B2FC2
002B2F22    83F8 01         cmp   eax, 0x1
002B2F25    75 07         jnz   short 002B2F2E
002B2F27    68 944C4400   push    00444C94                         ; 下一步(唐诗起名)


其他的检测,修改这里


00CE6302    E8 69F8FFFF                     call    00CE5B70
00CE6307    8BCE                            mov   ecx, esi
00CE6309    E8 D2EBFFFF                     call    00CE4EE0                         ; 这个进去RET
00CE630E    8BCE                            mov   ecx, esi
00CE6310    E8 9BE2FFFF                     call    00CE45B0
00CE6315    8D4C24 1C                     lea   ecx, dword ptr
00CE6319    FF15 50DAE700                   call    dword ptr [<&mfc90u.#600>]       ; mfc90u.#601
00CE631F    8D4C24 14                     lea   ecx, dword ptr
00CE6323    FF15 50DAE700                   call    dword ptr [<&mfc90u.#600>]       ; mfc90u.#601
00CE6329    8D4C24 18                     lea   ecx, dword ptr
00CE632D    FF15 50DAE700                   call    dword ptr [<&mfc90u.#600>]       ; mfc90u.#601
00CE6333    8B8C24 C8000000               mov   ecx, dword ptr
00CE633A    64:890D 00000000                mov   dword ptr fs:, ecx

这样修改以后菜单不卡,功能没了,使用具体内容,还是有卡死迹象……,用大白劫持算了

朱朱你堕落了 发表于 2023-9-23 21:39

无闻无问 发表于 2023-9-23 21:00
是同时打开,默认的行,另一个打开卡死?
还是默认路径那个关了,单独打开移动位置的卡死?

演示视频:
https://www.123pan.com/s/YL29-q06Oh.html

vipcrack 发表于 2023-9-23 21:44

感觉还是大白劫持方便。

无闻无问 发表于 2023-9-24 16:08

我感觉校验在sub_4081B0这函数里,死守CreateFileW,在这个函数里读取了自身并进行了计算,慢慢分析应该能找到关键……伤脑筋,不玩了

woflant 发表于 2023-9-24 21:01

程序在关键处调用VariantTimeToSystemTime转换某个时间,应该是楼上大佬说的文件属性时间

补丁:文件偏移0x33730按如下修改
33730        8B 44 24 04 -> C3 90 90 90

附暗桩循环睡眠堵塞汇编处

朱朱你堕落了 发表于 2023-9-26 07:08

woflant 发表于 2023-9-24 21:01
程序在关键处调用VariantTimeToSystemTime转换某个时间,应该是楼上大佬说的文件属性时间

补丁:文件偏 ...

老兄,你怎么找到的,刚开始的思路是什么?
页: [1] 2
查看完整版本: 求助分析软件自校验