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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5226|回复: 41
收起左侧

[原创] 记一次老旧32位软件在win10 64位系统中注册表读取失败问题的解决

  [复制链接]
ciker_li 发表于 2020-12-28 23:32
双十一把老机子升级了一下,系统也换成win10 64位系统,今天要恢复一张U盘的内容,拿出以前用的挺顺手的易我***恢复软件,竟然提示未注册。
在52上搜索了一下,还好有大神的帖子,https://www.52pojie.cn/thread-126396-1-1.html
照着调试了一遍,顺利找到注册码,填写后要求重启验证,竟然提示还是未注册!!!
重新调试一遍,在注册码的下面,看到:

00475D8C | 55                       | push ebp                                                  |
00475D8D | 8BEC                     | mov ebp,esp                                               |
00475D8F | 83EC 08                  | sub esp,8                                                 |
00475D92 | C745 F8 00000000         | mov dword ptr ss:[ebp-8],0                                |
00475D99 | 837D 08 00               | cmp dword ptr ss:[ebp+8],0                                |
00475D9D | 74 06                    | je drw.475DA5                                             |
00475D9F | 837D 10 00               | cmp dword ptr ss:[ebp+10],0                               |
00475DA3 | 75 07                    | jne drw.475DAC                                            |
00475DA5 | 33C0                     | xor eax,eax                                               |
00475DA7 | E9 BE000000              | jmp drw.475E6A                                            |
00475DAC | 8D45 F8                  | lea eax,dword ptr ss:[ebp-8]                              |
00475DAF | 50                       | push eax                                                  |
00475DB0 | 68 142D4A00              | push drw.4A2D14                                           | 4A2D14:"SOFTWARE\\成都易我科技\\易我数据恢复向导V2.1.0\\2.10.000"
00475DB5 | 68 01000080              | push 80000002                                            |
00475DBA | FF15 10304800            | call dword ptr ds:[<&RegOpenKeyA>]                        |
00475DC0 | 85C0                     | test eax,eax                                              |
00475DC2 | 74 07                    | je drw.475DCB                                             |
00475DC4 | 33C0                     | xor eax,eax                                               |
00475DC6 | E9 9F000000              | jmp drw.475E6A                                            |
00475DCB | 8B4D 0C                  | mov ecx,dword ptr ss:[ebp+C]                              |
00475DCE | 51                       | push ecx                                                  |
00475DCF | 6A 00                    | push 0                                                    |
00475DD1 | 8B55 08                  | mov edx,dword ptr ss:[ebp+8]                              |
00475DD4 | 52                       | push edx                                                  |
00475DD5 | E8 F6620000              | call <JMP.&memset>                                        |
00475DDA | 83C4 0C                  | add esp,C                                                 |
00475DDD | 8B45 14                  | mov eax,dword ptr ss:[ebp+14]                             |
00475DE0 | 50                       | push eax                                                  |
00475DE1 | 6A 00                    | push 0                                                    |
00475DE3 | 8B4D 10                  | mov ecx,dword ptr ss:[ebp+10]                             |
00475DE6 | 51                       | push ecx                                                  |
00475DE7 | E8 E4620000              | call <JMP.&memset>                                        |
00475DEC | 83C4 0C                  | add esp,C                                                 |
00475DEF | C745 FC 01000000         | mov dword ptr ss:[ebp-4],1                                |
00475DF6 | 8D55 0C                  | lea edx,dword ptr ss:[ebp+C]                              |
00475DF9 | 52                       | push edx                                                  |
00475DFA | 8B45 08                  | mov eax,dword ptr ss:[ebp+8]                              |
00475DFD | 50                       | push eax                                                  |
00475DFE | 8D4D FC                  | lea ecx,dword ptr ss:[ebp-4]                              |
00475E01 | 51                       | push ecx                                                  |
00475E02 | 6A 00                    | push 0                                                    |
00475E04 | 68 4C2D4A00              | push drw.4A2D4C                                           | 4A2D4C:"UserName"
00475E09 | 8B55 F8                  | mov edx,dword ptr ss:[ebp-8]                              |
00475E0C | 52                       | push edx                                                  |
00475E0D | FF15 04304800            | call dword ptr ds:[<&RegQueryValueExA>]                   |
00475E13 | 85C0                     | test eax,eax                                              |
00475E15 | 74 0E                    | je drw.475E25                                             |
00475E17 | 8B45 F8                  | mov eax,dword ptr ss:[ebp-8]                              |
00475E1A | 50                       | push eax                                                  |
00475E1B | FF15 0C304800            | call dword ptr ds:[<&RegCloseKey>]                        |
00475E21 | 33C0                     | xor eax,eax                                               |
00475E23 | EB 45                    | jmp drw.475E6A                                            |
00475E25 | C745 FC 01000000         | mov dword ptr ss:[ebp-4],1                                |
00475E2C | 8D4D 14                  | lea ecx,dword ptr ss:[ebp+14]                             |
00475E2F | 51                       | push ecx                                                  |
00475E30 | 8B55 10                  | mov edx,dword ptr ss:[ebp+10]                             |
00475E33 | 52                       | push edx                                                  |
00475E34 | 8D45 FC                  | lea eax,dword ptr ss:[ebp-4]                              |
00475E37 | 50                       | push eax                                                  |
00475E38 | 6A 00                    | push 0                                                    |
00475E3A | 68 582D4A00              | push drw.4A2D58                                           | 4A2D58:"RegisterCode"
00475E3F | 8B4D F8                  | mov ecx,dword ptr ss:[ebp-8]                              |
00475E42 | 51                       | push ecx                                                  |
00475E43 | FF15 04304800            | call dword ptr ds:[<&RegQueryValueExA>]                   |
00475E49 | 85C0                     | test eax,eax                                              |
00475E4B | 74 0E                    | je drw.475E5B                                             |
00475E4D | 8B55 F8                  | mov edx,dword ptr ss:[ebp-8]                              |
00475E50 | 52                       | push edx                                                  |
00475E51 | FF15 0C304800            | call dword ptr ds:[<&RegCloseKey>]                        |
00475E57 | 33C0                     | xor eax,eax                                               |
00475E59 | EB 0F                    | jmp drw.475E6A                                            |
00475E5B | 8B45 F8                  | mov eax,dword ptr ss:[ebp-8]                              |
00475E5E | 50                       | push eax                                                  |
00475E5F | FF15 0C304800            | call dword ptr ds:[<&RegCloseKey>]                        |
00475E65 | F7D8                     | neg eax                                                   |
00475E67 | 1BC0                     | sbb eax,eax                                               |
00475E69 | 40                       | inc eax                                                   |
00475E6A | 8BE5                     | mov esp,ebp                                               |
00475E6C | 5D                       | pop ebp                                                   |
00475E6D | C2 1000                  | ret 10                                                    |

RegOpenKeyA,和SOFTWARE\\成都易我科技\\易我数据恢复向导V2.1.0\\2.10.000",4A2D4C:"UserName",4A2D58:"RegisterCode"
这说明程序是把注册码和用户名写到注册表了
于是在00475DBA下断点,再次运行的时候,发现RegOpenKeyA返回空,没有读取成功,这是什么情况?
查看RegOpenKeyA的参数说明,RegOpenKeyA(ByVal hKey As Long, ByVal lpszSubKey As String, phkResult As Long)
00475DAF | 50                       | push eax                                                  |
00475DB0 | 68 142D4A00              | push drw.4A2D14                                           | 4A2D14:"SOFTWARE\\成都易我科技\\易我数据恢复向导V2.1.0\\2.10.000"
00475DB5 | 68 01000080              | push 80000002      
eax接受返回结果,第二个字符串是注册表项,80000002 是hKey
Key hKey(Key Handle)

HKEY_CLASSES_ROOT &H80000000

HKEY_CURRENT_USER &H80000001

HKEY_LOCAL_MACHINE &H80000002

HKEY_USERS &H80000003

HKEY_CURRENT_CONFIG &H80000005

HKEY_DYN_DATA &H80000006
打开注册表编辑器,在HKEY_LOCAL_MACHINE\SOFTWARE下真的没有“成都易我科技”项!奇怪了
于是先自己按要求把注册表写好
在HKEY_LOCAL_MACHINE\SOFTWARE\成都易我科技\易我数据恢复向导V2.1.0\2.10.000项里添加两个字符串变量"UserName","RegisterCode",写好自己的数据
再调试,竟然还是返回空!
继续百度,发现在win10 64位系统中,只有HKEY_CURRENT_USER 子项不受限制注册表可随意读写
原来如此!
赶紧把程序中调用RegOpenKeyA函数的参数80000002都改成80000001,也就2处,一处写,一处读取
填写好注册信息后完美注册!

换64位后,好多东西还是不熟悉,还得学习啊


免费评分

参与人数 5吾爱币 +9 热心值 +5 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
camedeus + 1 + 1 谢谢@Thanks!
Jack2002 + 1 + 1 用心讨论,共获提升!
O678O + 1 用心讨论,共获提升!
burning + 1 用心讨论,共获提升!

查看全部评分

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

ellvincent 发表于 2020-12-29 21:08
64位系统下32位的程序读写注册表的位置在HKEY_LOCAL_MACHINE\Software\Wow6432Node下
fsmode 发表于 2020-12-29 08:54
羡慕你们程序员,有个软件32位win7时用的,到了64位怎么也注册不上了,也不会自己算注册码,怎么也用不了,学习下思路试试。
PrincessSnow 发表于 2020-12-29 00:02
AsuraSong 发表于 2020-12-29 00:05
谢谢楼主分享,特别详细,值得学习
没头脑和温柚 发表于 2020-12-29 00:34
原来如此
Azad 发表于 2020-12-29 00:40
感谢分享,学习了
duduhao 发表于 2020-12-29 02:15
点赞一个
kkklj 发表于 2020-12-29 03:14
win10把用户可操作权限下调了很多吧
mllaopang 发表于 2020-12-29 07:43
谢谢楼主分享,特别详细,值得学习
O678O 发表于 2020-12-29 08:11
特别详细,值得学习
hh716 发表于 2020-12-29 08:13
值得学习,大佬就是大佬
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-4-27 04:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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