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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 407|回复: 8
收起左侧

[讨论] DbfManager 3.11 注册表,藏得很深

[复制链接]
zngyngcpu 发表于 2024-3-23 14:23
Dbf Manager最新版本是3.11,https:/\astersoft.com/files/dbfmanager.zip。软件可以使用45次,已经确定次数相关信息是存储在注册表 Administrator\NTUSER.DAT。但通过比较注册表找不到头绪,只能通过还原未运行前的注册表文件NTUSER.DAT来再运行45次。有没有好的解决方案,比如改一个字节那种?

本帖被以下淘专辑推荐:

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

爱飞的猫 发表于 2024-3-23 20:26
你可以写个启动器,先重置注册表的该项内容,然后再启动主程序。
冥界3大法王 发表于 2024-3-24 09:06
本帖最后由 冥界3大法王 于 2024-3-24 09:15 编辑

011C2622  | 0F84 6A010000      | je dbfmanager.11C2792                   |
011C2628  | 8D55 D0            | lea edx,dword ptr ss:[ebp-30]           |
011C262B  | A1 B0B85701        | mov eax,dword ptr ds:[157B8B0]          |
011C2630  | 8B80 EC030000      | mov eax,dword ptr ds:[eax+3EC]          | [eax+3EC]:PeekMessageW+16E
011C2636  | E8 A9CF49FF        | call dbfmanager.65F5E4                  |
011C263B  | 8B45 D0            | mov eax,dword ptr ss:[ebp-30]           |
011C263E  | 8D55 D4            | lea edx,dword ptr ss:[ebp-2C]           |
011C2641  | E8 46432CFF        | call dbfmanager.48698C                  |
011C2646  | 8B55 D4            | mov edx,dword ptr ss:[ebp-2C]           |
011C2649  | 8D45 F8            | lea eax,dword ptr ss:[ebp-8]            |
011C264C  | E8 6FA924FF        | call dbfmanager.40CFC0                  |
011C2651  | 8D55 C8            | lea edx,dword ptr ss:[ebp-38]           |
011C2654  | A1 B0B85701        | mov eax,dword ptr ds:[157B8B0]          |
011C2659  | 8B80 E8030000      | mov eax,dword ptr ds:[eax+3E8]          |
011C265F  | E8 80CF49FF        | call dbfmanager.65F5E4                  |
011C2664  | 8B45 C8            | mov eax,dword ptr ss:[ebp-38]           |
011C2667  | 8D55 CC            | lea edx,dword ptr ss:[ebp-34]           |
011C266A  | E8 1D432CFF        | call dbfmanager.48698C                  |
011C266F  | 8B55 CC            | mov edx,dword ptr ss:[ebp-34]           |
011C2672  | 8D45 F4            | lea eax,dword ptr ss:[ebp-C]            |
011C2675  | E8 46A924FF        | call dbfmanager.40CFC0                  |
011C267A  | 6A 00              | push 0                                  |
011C267C  | 8D4D F0            | lea ecx,dword ptr ss:[ebp-10]           |
011C267F  | 8B55 F4            | mov edx,dword ptr ss:[ebp-C]            |
011C2682  | 8B45 F8            | mov eax,dword ptr ss:[ebp-8]            |
011C2685  | E8 4EDE6AFF        | call dbfmanager.8704D8                  |
011C268A  | 3C 03              | cmp al,3                                |
011C268C  | 0F85 B4000000      | jne dbfmanager.11C2746                  |
011C2692  | 8B55 F8            | mov edx,dword ptr ss:[ebp-8]            |
011C2695  | B8 24281C01        | mov eax,dbfmanager.11C2824              | 11C2824:L"RName"
011C269A  | E8 D9E56AFF        | call dbfmanager.870C78                  |
011C269F  | 84C0               | test al,al                              |
011C26A1  | 74 2D              | je dbfmanager.11C26D0                   |
011C26A3  | 8B55 F4            | mov edx,dword ptr ss:[ebp-C]            |
011C26A6  | B8 34281C01        | mov eax,dbfmanager.11C2834              | 11C2834:L"RCode"
011C26AB  | E8 C8E56AFF        | call dbfmanager.870C78                  |
011C26B0  | 84C0               | test al,al                              |
011C26B2  | 74 1C              | je dbfmanager.11C26D0                   |
011C26B4  | 6A 40              | push 40                                 |
011C26B6  | 68 40281C01        | push dbfmanager.11C2840                 | 11C2840:L"Registration"
011C26BB  | 68 5C281C01        | push dbfmanager.11C285C                 | 11C285C:L"Thank you for your registration!"
011C26C0  | 8B45 FC            | mov eax,dword ptr ss:[ebp-4]            | [ebp-04]:&"臍f"
011C26C3  | E8 50634AFF        | call dbfmanager.668A18                  |
011C26C8  | 50                 | push eax                                |
011C26C9  | E8 22E025FF        | call <JMP.&MessageBoxW>                 |
011C26CE  | EB 1A              | jmp dbfmanager.11C26EA                  |
011C26D0  | 6A 40              | push 40                                 |
011C26D2  | 68 40281C01        | push dbfmanager.11C2840                 | 11C2840:L"Registration"
011C26D7  | 68 A0281C01        | push dbfmanager.11C28A0                 | 11C28A0:L"Thank you!"
011C26DC  | 8B45 FC            | mov eax,dword ptr ss:[ebp-4]            | [ebp-04]:&"臍f"
011C26DF  | E8 34634AFF        | call dbfmanager.668A18                  |
011C26E4  | 50                 | push eax                                |
011C26E5  | E8 06E025FF        | call <JMP.&MessageBoxW>                 |
011C26EA  | A1 08BA4001        | mov eax,dword ptr ds:[140BA08]          |
011C26EF  | 8B00               | mov eax,dword ptr ds:[eax]              |
011C26F1  | BA C4281C01        | mov edx,<dbfmanager.&JMP.&StretchDIBits | 11C28C4:L"DBF Manager"
011C26F6  | E8 3DCF49FF        | call dbfmanager.65F638                  |
011C26FB  | 8D45 F0            | lea eax,dword ptr ss:[ebp-10]           |
011C26FE  | BA 04150000        | mov edx,1504                            |
011C2703  | E8 A8846AFF        | call dbfmanager.86ABB0                  |
011C2708  | 85C0               | test eax,eax                            |
011C270A  | 0F9FC2             | setg dl                                 |
011C270D  | A1 08BA4001        | mov eax,dword ptr ds:[140BA08]          |
011C2712  | 8B00               | mov eax,dword ptr ds:[eax]              |
011C2714  | 8B80 E4060000      | mov eax,dword ptr ds:[eax+6E4]          | [eax+6E4]:WindowFromPoint+600
011C271A  | E8 8D1FB3FF        | call dbfmanager.CF46AC                  |
011C271F  | A1 08BA4001        | mov eax,dword ptr ds:[140BA08]          |
011C2724  | 8B00               | mov eax,dword ptr ds:[eax]              |
011C2726  | 8B80 E4060000      | mov eax,dword ptr ds:[eax+6E4]          | [eax+6E4]:WindowFromPoint+600
011C272C  | 8A90 B8000000      | mov dl,byte ptr ds:[eax+B8]             |
011C2732  | A1 08BA4001        | mov eax,dword ptr ds:[140BA08]          |
011C2737  | 8B00               | mov eax,dword ptr ds:[eax]              |
011C2739  | 8B80 00070000      | mov eax,dword ptr ds:[eax+700]          | [eax+700]:TMethodImplementationIntercept+2B2DB4
011C273F  | E8 681FB3FF        | call dbfmanager.CF46AC                  |
011C2744  | EB 4C              | jmp dbfmanager.11C2792                  |
011C2746  | 6A 30              | push 30                                 |
011C2748  | 68 40281C01        | push dbfmanager.11C2840                 | 11C2840:L"Registration"
011C274D  | 68 E8281C01        | push dbfmanager.11C28E8                 | 11C28E8:L"Key is "
011C2752  | 33C9               | xor ecx,ecx                             |
011C2754  | 8B55 F4            | mov edx,dword ptr ss:[ebp-C]            |
011C2757  | 8B45 F8            | mov eax,dword ptr ss:[ebp-8]            |
011C275A  | E8 21D96AFF        | call dbfmanager.870080                  |
011C275F  | 83E0 7F            | and eax,7F                              |
011C2762  | FF3485 F40E4001    | push dword ptr ds:[eax*4+1400EF4]       | eax*4+1400EF4:dbkFCallWrapperAddr+66D854
011C2769  | 68 04291C01        | push dbfmanager.11C2904                 | 11C2904:L", please contact manufacturer!"

image.png
AL=3注册成功


010B1F8C  | E8 B3E57BFF            | call dbfmanager.870544       ===>Here!
010B1F91  | 3C 03                  | cmp al,3                         |
010B1F93  | 75 32                  | jne dbfmanager.10B1FC7           |
010B1F95  | 33D2                   | xor edx,edx                      |
010B1F97  | B8 34200B01            | mov eax,dbfmanager.10B2034       | 10B2034:L"RName"
010B1F9C  | E8 D7EC7BFF            | call dbfmanager.870C78           |
010B1FA1  | 33D2                   | xor edx,edx                      |
010B1FA3  | B8 44200B01            | mov eax,dbfmanager.10B2044       | 10B2044:L"RCode"
010B1FA8  | E8 CBEC7BFF            | call dbfmanager.870C78           |
010B1FAD  | 8B55 F4                | mov edx,dword ptr ss:[ebp-C]     | [ebp-0C]:&"臍f"
010B1FB0  | B8 34200B01            | mov eax,dbfmanager.10B2034       | 10B2034:L"RName"
010B1FB5  | E8 BEEC7BFF            | call dbfmanager.870C78           |
010B1FBA  | 8B55 F0                | mov edx,dword ptr ss:[ebp-10]    | [ebp-10]:TMethodImplementationIntercept+8CD2C4
010B1FBD  | B8 44200B01            | mov eax,dbfmanager.10B2044       | 10B2044:L"RCode"
010B1FC2  | E8 B1EC7BFF            | call dbfmanager.870C78           |

但补丁后程序有自校验会出现runtime XX
所以大白补丁伺候,研究了五分钟,再会!
冥界3大法王 发表于 2024-3-24 09:58
本帖最后由 冥界3大法王 于 2024-3-24 10:05 编辑

005F28D0  | BA C0295F00                 | mov edx,dbfmanager.5F29C0                    | 5F29C0:L"\\Software\\EurekaLab\\EurekaLog\\7.0\\License"
显然 还用到了 EurekaLog这个delphi的插件,因此让其崩溃调用堆栈信息自然也就会出来了。

image.png
除了UPX外,还有网络
冥界3大法王 发表于 2024-3-24 12:21
还有一段代码位于关于中,强改的话,调用注册信息了,但瞬间崩溃。
疑问1: 标记点竟然没找到
疑问2:注册成功后,后边的信息接不上。
得解决脱壳问题,得干掉调试堆栈的插件。
lies2014 发表于 2024-4-12 17:29
冥界3大法王 发表于 2024-3-24 12:21
还有一段代码位于关于中,强改的话,调用注册信息了,但瞬间崩溃。
疑问1: 标记点竟然没找到
疑问2:注 ...


2024-04-12_165936.png

这个程序有两处验证,都要通过才能注册成功
第一处验证:
(用户名+@@+序列号1-7位)取 SHA1 与(序列号8-末位计算出来的一个比特串)校验
校验函数 在 0x870765,校验成功返回 1

2024-04-12_171910.png

第二处验证:
(序列号1-7位计算出来的一个比特串)用于时间校验,算法同8-末位,验证从 0x870831 开始
这里我跟进去看,共 18000 多行指令,加了一些花指令及废指令,有用的也就 20 行左右
算法不难,具体见截图

2024-04-12_172437.png

第一处验证里面有好几个 call,鉴于第二处的代码量,懒得进去看了
直接返回 1 也能注册成功,有兴趣你可以跟进去找出校验算法
lies2014 发表于 2024-4-12 19:08
用大白做了个补丁,你试试

用法:
将两个 DLL 复制到软件目录
用 key.txt 里的序列号注册(用户名随意)

链接:https://pan.baidu.com/s/1d3NQa4IxeCkwlbziAAVmrg
提取码:9xob
 楼主| zngyngcpu 发表于 2024-4-12 20:33
lies2014 发表于 2024-4-12 19:08
用大白做了个补丁,你试试

用法:

太感谢了
lies2014 发表于 2024-4-12 20:54

抱歉,补丁里面用了绝对目录,你重新下载目录里面的 “DBFManager 和谐补丁.exe”,放到软件目录
运行后勾选“选择释放”,再选择“PYG.dll”和“version.dll”就可以了
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-29 23:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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