- UID
- 6290
注册时间2006-1-2
阅读权限20
最后登录1970-1-1
以武会友
TA的每日心情 | 开心 2023-2-2 10:20 |
---|
签到天数: 38 天 [LV.5]常住居民I
|
飘云老大的[PYG]算法分析入门第四课中的软件私人保险箱已经更新到6.48版(下载地址http://www3.skycn.com/soft/14176.html),按照老大的教程可以提示注册成功。可是工具集里的还原功能不能使用,提示只有注册用户才能使用,而且软件使用15次以后提示过期。自己分析了一下,软件在第一次启动的时候会在系统目录生成一个Mgprend4.dll文件,用记事本打开里面是试用次数15,次数不能改大,因为程序启动时会判断这个值,如果大于15直接跳到过期,出现过期提示的同时会在注册表HKEY_LOCAL_MACHINE\SOFTWARE\FinalVer里建立一个end4的项目,每次程序启动会先检测这个项目,那就直接提示过期。过期后,会提示注册,注册窗口要求填入用户名和注册码,不知道注册码是不是要用用户名参与运算,一直没把这个注册的地方断下来,所以想请各位高手看看这个软件到底该怎么注册?另外,在前面提到的使用工具集里的还原功能提示只有注册用户才能使用,在这里跟踪,发现软件是读取注册表HKEY_CURRENT_USER\Software\SafeBox里面的RegNo项目,而且在试用时我们注册成功时,建立的项目名称是RegNum,尝试把RegNum改成RegNo,可以通过第一步验证,可是第二步通不过(使用这个功能要通过2步验证)。
困扰自己2天了,实在是找不到好的头绪,不知道怎样才能算是真正的注册,所以发贴请教大家,请大家多指教!代码贴在下面。
004E8E06 |. E8 BD25F8FF call 0046B3C8
004E8E0B |. 8BD8 mov ebx, eax
004E8E0D |. BA 02000080 mov edx, 80000002
004E8E12 |. 8BC3 mov eax, ebx
004E8E14 |. E8 4F26F8FF call 0046B468
004E8E19 |. B1 01 mov cl, 1
004E8E1B |. BA 04924E00 mov edx, 004E9204 ; ASCII"Software\FinalVer"
004E8E20 |. 8BC3 mov eax, ebx
004E8E22 |. E8 8527F8FF call 0046B5AC
004E8E27 |. BA 20924E00 mov edx, 004E9220 ; ASCII "end4"
004E8E2C |. 8BC3 mov eax, ebx
004E8E2E |. E8 692EF8FF call 0046BC9C ; 判断注册表里是否用end4这个项目
004E8E33 |. 84C0 test al, al
004E8E35 |. 0F85 24030000 jnz 004E915F ; 如果用end4这个项目跳向过期
004E8E3B |. 8D85 2CFEFFFF lea eax, dword ptr [ebp-1D4]
004E8E41 |. E8 0AD3FFFF call 004E6150 ; 获得系统目录
004E8E46 |. 8D85 2CFEFFFF lea eax, dword ptr [ebp-1D4]
004E8E4C |. BA 30924E00 mov edx, 004E9230 ; ASCII "\Mgprend4.dll"
004E8E51 |. E8 3AC1F1FF call 00404F90
004E8E56 |. 8B85 2CFEFFFF mov eax, dword ptr [ebp-1D4]
004E8E5C |. E8 EB0AF2FF call 0040994C ; 判断系统里是否有Mgprend4.dll这个文件
004E8E61 |. 84C0 test al, al
004E8E63 |. 0F84 8E020000 je 004E90F7 ; 没有就跳走,然后建立这个文件
004E8E69 |. 8D85 28FEFFFF lea eax, dword ptr [ebp-1D8]
004E8E6F |. E8 DCD2FFFF call 004E6150
004E8E74 |. 8D85 28FEFFFF lea eax, dword ptr [ebp-1D8]
004E8E7A |. BA 30924E00 mov edx, 004E9230 ; ASCII "\Mgprend4.dll"
004E8E7F |. E8 0CC1F1FF call 00404F90
004E8E84 |. 8B95 28FEFFFF mov edx, dword ptr [ebp-1D8]
004E8E8A |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E8E90 |. E8 4FA1F1FF call 00402FE4
004E8E95 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E8E9B |. E8 D49EF1FF call 00402D74
004E8EA0 |. E8 739AF1FF call 00402918
004E8EA5 |. 8D55 FC lea edx, dword ptr [ebp-4]
004E8EA8 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E8EAE |. E8 D5A6F1FF call 00403588
004E8EB3 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E8EB9 |. E8 36A7F1FF call 004035F4
004E8EBE |. E8 559AF1FF call 00402918
004E8EC3 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E8EC9 |. E8 92A2F1FF call 00403160
004E8ECE |. E8 459AF1FF call 00402918
004E8ED3 |. 8B45 FC mov eax, dword ptr [ebp-4]
004E8ED6 |. E8 3908F2FF call 00409714 ; 上面是读取Mgprend4.dll中的次数
004E8EDB |. 8BF8 mov edi, eax
004E8EDD |. 85FF test edi, edi ; 判断次数是否等于0
004E8EDF |. 7E 05 jle short 004E8EE6 ; 等于0就跳到过期
004E8EE1 |. 83FF 0F cmp edi, 0F ; 判断是否大于15
004E8EE4 |. 7E 73 jle short 004E8F59 ; 跳走就继续判断是否大于3
004E8EE6 |> 33C9 xor ecx, ecx ; 不跳走就直接提示过期
004E8EE8 |. BA 20924E00 mov edx, 004E9220 ; ASCII "end4"
004E8EED |. 8BC3 mov eax, ebx
004E8EEF |. E8 E42BF8FF call 0046BAD8
004E8EF4 |. 33D2 xor edx, edx
004E8EF6 |. 8B86 2C030000 mov eax, dword ptr [esi+32C]
004E8EFC |. 8B08 mov ecx, dword ptr [eax]
004E8EFE |. FF51 64 call dword ptr [ecx+64]
004E8F01 |. B2 01 mov dl, 1
004E8F03 |. 8B86 6C030000 mov eax, dword ptr [esi+36C]
004E8F09 |. E8 2EF1F5FF call 0044803C
004E8F0E |. BA 48924E00 mov edx, 004E9248
004E8F13 |. 8B86 78030000 mov eax, dword ptr [esi+378]
004E8F19 |. E8 7620FBFF call 0049AF94
004E8F1E |. BA 58924E00 mov edx, 004E9258
004E8F23 |. 8B86 74030000 mov eax, dword ptr [esi+374]
004E8F29 |. E8 1EF2F5FF call 0044814C
004E8F2E |. 6A 01 push 1
004E8F30 |. 68 84924E00 push 004E9284
004E8F35 |. 68 84924E00 push 004E9284
004E8F3A |. 68 88924E00 push 004E9288 ; ASCII
"http://www.sharebank.com.cn/soft/softbuy.php?soid=10816"
004E8F3F |. 68 C0924E00 push 004E92C0 ; ASCII "Open"
004E8F44 |. A1 68DE4E00 mov eax, dword ptr [4EDE68]
004E8F49 |. E8 DA58F6FF call 0044E828
004E8F4E |. 50 push eax ; |hWnd
004E8F4F |. E8 34F7F4FF call <jmp.&shell32.ShellExecuteA> ; \ShellExecuteA
004E8F54 |. E9 6D020000 jmp 004E91C6
004E8F59 |> 83FF 04 cmp edi, 4 ; 判断是否大于3,小于3会提示试用剩余次数
004E8F5C |. 0F8F 0A010000 jg 004E906C ; 没跳
004E8F62 |. 33D2 xor edx, edx
004E8F64 |. 8B86 2C030000 mov eax, dword ptr [esi+32C]
004E8F6A |. 8B08 mov ecx, dword ptr [eax]
004E8F6C |. FF51 64 call dword ptr [ecx+64]
004E8F6F |. B2 01 mov dl, 1
004E8F71 |. 8B86 6C030000 mov eax, dword ptr [esi+36C]
004E8F77 |. E8 C0F0F5FF call 0044803C
004E8F7C |. 68 D0924E00 push 004E92D0 ; 您还能再使用几次,几<3
004E8F81 |. 8D95 20FEFFFF lea edx, dword ptr [ebp-1E0]
004E8F87 |. 8BC7 mov eax, edi
004E8F89 |. 48 dec eax
004E8F8A |. E8 E506F2FF call 00409674
004E8F8F |. FFB5 20FEFFFF push dword ptr [ebp-1E0]
004E8F95 |. 68 E8924E00 push 004E92E8
004E8F9A |. 8D85 24FEFFFF lea eax, dword ptr [ebp-1DC]
004E8FA0 |. BA 03000000 mov edx, 3
004E8FA5 |. E8 9EC0F1FF call 00405048
004E8FAA |. 8B95 24FEFFFF mov edx, dword ptr [ebp-1DC]
004E8FB0 |. 8B86 74030000 mov eax, dword ptr [esi+374]
004E8FB6 |. E8 91F1F5FF call 0044814C
004E8FBB |. 6A 01 push 1
004E8FBD |. 68 84924E00 push 004E9284
004E8FC2 |. 68 84924E00 push 004E9284
004E8FC7 |. 68 88924E00 push 004E9288 ; ASCII"http://www.sharebank.com.cn/soft/softbuy.php?soid=10816"
004E8FCC |. 68 C0924E00 push 004E92C0 ; ASCII "Open"
004E8FD1 |. A1 68DE4E00 mov eax, dword ptr [4EDE68]
004E8FD6 |. E8 4D58F6FF call 0044E828
004E8FDB |. 50 push eax ; |hWnd
004E8FDC |. E8 A7F6F4FF call <jmp.&shell32.ShellExecuteA> ; \ShellExecuteA
004E8FE1 |. 8B45 FC mov eax, dword ptr [ebp-4]
004E8FE4 |. E8 2B07F2FF call 00409714
004E8FE9 |. 48 dec eax
004E8FEA |. 8D95 1CFEFFFF lea edx, dword ptr [ebp-1E4]
004E8FF0 |. E8 7F06F2FF call 00409674
004E8FF5 |. 8B95 1CFEFFFF mov edx, dword ptr [ebp-1E4]
004E8FFB |. 8D45 FC lea eax, dword ptr [ebp-4]
004E8FFE |. E8 65BDF1FF call 00404D68
004E9003 |. 8D85 18FEFFFF lea eax, dword ptr [ebp-1E8]
004E9009 |. E8 42D1FFFF call 004E6150
004E900E |. 8D85 18FEFFFF lea eax, dword ptr [ebp-1E8]
004E9014 |. BA 30924E00 mov edx, 004E9230 ; ASCII "\Mgprend4.dll"
004E9019 |. E8 72BFF1FF call 00404F90
004E901E |. 8B95 18FEFFFF mov edx, dword ptr [ebp-1E8]
004E9024 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E902A |. E8 B59FF1FF call 00402FE4
004E902F |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E9035 |. E8 469DF1FF call 00402D80
004E903A |. E8 D998F1FF call 00402918
004E903F |. 8B55 FC mov edx, dword ptr [ebp-4]
004E9042 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E9048 |. E8 4FC3F1FF call 0040539C
004E904D |. E8 5EA9F1FF call 004039B0
004E9052 |. E8 C198F1FF call 00402918
004E9057 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E905D |. E8 FEA0F1FF call 00403160
004E9062 |. E8 B198F1FF call 00402918
004E9067 |. E9 5A010000 jmp 004E91C6
004E906C |> 8B45 FC mov eax, dword ptr [ebp-4]
004E906F |. E8 A006F2FF call 00409714
004E9074 |. 48 dec eax
004E9075 |. 8D95 14FEFFFF lea edx, dword ptr [ebp-1EC]
004E907B |. E8 F405F2FF call 00409674
004E9080 |. 8B95 14FEFFFF mov edx, dword ptr [ebp-1EC]
004E9086 |. 8D45 FC lea eax, dword ptr [ebp-4]
004E9089 |. E8 DABCF1FF call 00404D68
004E908E |. 8D85 10FEFFFF lea eax, dword ptr [ebp-1F0]
004E9094 |. E8 B7D0FFFF call 004E6150
004E9099 |. 8D85 10FEFFFF lea eax, dword ptr [ebp-1F0]
004E909F |. BA 30924E00 mov edx, 004E9230 ; ASCII "\Mgprend4.dll"
004E90A4 |. E8 E7BEF1FF call 00404F90
004E90A9 |. 8B95 10FEFFFF mov edx, dword ptr [ebp-1F0]
004E90AF |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E90B5 |. E8 2A9FF1FF call 00402FE4
004E90BA |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E90C0 |. E8 BB9CF1FF call 00402D80
004E90C5 |. E8 4E98F1FF call 00402918
004E90CA |. 8B55 FC mov edx, dword ptr [ebp-4]
004E90CD |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E90D3 |. E8 C4C2F1FF call 0040539C
004E90D8 |. E8 D3A8F1FF call 004039B0
004E90DD |. E8 3698F1FF call 00402918
004E90E2 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E90E8 |. E8 73A0F1FF call 00403160
004E90ED |. E8 2698F1FF call 00402918
004E90F2 |. E9 C8000000 jmp 004E91BF
004E90F7 |> 8D85 0CFEFFFF lea eax, dword ptr [ebp-1F4] ; 从004E8E63跳过来的
004E90FD |. E8 4ED0FFFF call 004E6150 ; 下面就是建立Mgprend4.dll这个文件的过程
004E9102 |. 8D85 0CFEFFFF lea eax, dword ptr [ebp-1F4]
004E9108 |. BA 30924E00 mov edx, 004E9230 ; ASCII "\Mgprend4.dll"
004E910D |. E8 7EBEF1FF call 00404F90
004E9112 |. 8B95 0CFEFFFF mov edx, dword ptr [ebp-1F4]
004E9118 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E911E |. E8 C19EF1FF call 00402FE4
004E9123 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E9129 |. E8 529CF1FF call 00402D80
004E912E |. E8 E597F1FF call 00402918
004E9133 |. BA 44934E00 mov edx, 004E9344 ; ASCII "15"
004E9138 |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E913E |. E8 59C2F1FF call 0040539C ; 这里是写入试用次数15
004E9143 |. E8 68A8F1FF call 004039B0
004E9148 |. E8 CB97F1FF call 00402918
004E914D |. 8D85 30FEFFFF lea eax, dword ptr [ebp-1D0]
004E9153 |. E8 08A0F1FF call 00403160
004E9158 |. E8 BB97F1FF call 00402918
004E915D |. EB 60 jmp short 004E91BF
004E915F |> 33D2 xor edx, edx
004E9161 |. 8B86 2C030000 mov eax, dword ptr [esi+32C]
另外使用工具集里的还原功能,会用2次验证,代码如下:
004E3DE1 |. 8BC6 mov eax, esi
004E3DE3 |. E8 8076F8FF call 0046B468
004E3DE8 |. B1 01 mov cl, 1
004E3DEA |. BA 34424E00 mov edx, 004E4234 ; ASCII "Software\SafeBox"
004E3DEF |. 8BC6 mov eax, esi
004E3DF1 |. E8 B677F8FF call 0046B5AC
004E3DF6 |. BA 50424E00 mov edx, 004E4250 ; ASCII "RegNo"
004E3DFB |. 8BC6 mov eax, esi ; 上面是读取注册表
004E3DFD |. E8 9A7EF8FF call 0046BC9C ; 第一次验证
004E3E02 |. 84C0 test al, al
004E3E04 |. 75 24 jnz short 004E3E2A ; 通过验证就跳走
004E3E06 |. 8BC6 mov eax, esi
004E3E08 |. E8 3701F2FF call 00403F44
004E3E0D |. 6A 00 push 0
004E3E0F |. B9 58424E00 mov ecx, 004E4258
004E3E14 |. BA 64424E00 mov edx, 004E4264 ; 本功能仅限注册用户使用!
004E3E19 |. A1 C0CD4E00 mov eax, dword ptr [4ECDC0]
004E3E1E |. 8B00 mov eax, dword ptr [eax]
004E3E20 |. E8 5751F8FF call 00468F7C
004E3E25 |. E9 BB030000 jmp 004E41E5
004E3E2A |> 8D4D F8 lea ecx, dword ptr [ebp-8]
004E3E2D |. BA 50424E00 mov edx, 004E4250 ; ASCII "RegNo"
004E3E32 |. 8BC6 mov eax, esi
004E3E34 |. E8 CB7CF8FF call 0046BB04 ; 再一次读取注册表
004E3E39 |. 8B45 F8 mov eax, dword ptr [ebp-8]
004E3E3C |. 50 push eax
004E3E3D |. 6A 03 push 3
004E3E3F |. 8D45 EC lea eax, dword ptr [ebp-14]
004E3E42 |. 50 push eax
004E3E43 |. B9 02000000 mov ecx, 2
004E3E48 |. BA 01000000 mov edx, 1
004E3E4D |. 8B45 FC mov eax, dword ptr [ebp-4]
004E3E50 |. E8 7FBDFEFF call 004CFBD4
004E3E55 |. 8B45 EC mov eax, dword ptr [ebp-14]
004E3E58 |. 8D4D F0 lea ecx, dword ptr [ebp-10]
004E3E5B |. BA 03000000 mov edx, 3
004E3E60 |. E8 AFDCF5FF call 00441B14
004E3E65 |. FF75 F0 push dword ptr [ebp-10]
004E3E68 |. 6A 03 push 3
004E3E6A |. 8D45 E4 lea eax, dword ptr [ebp-1C]
004E3E6D |. 50 push eax
004E3E6E |. B9 02000000 mov ecx, 2
004E3E73 |. BA 01000000 mov edx, 1
004E3E78 |. 8B45 FC mov eax, dword ptr [ebp-4]
004E3E7B |. E8 F8BDFEFF call 004CFC78
004E3E80 |. 8B45 E4 mov eax, dword ptr [ebp-1C]
004E3E83 |. 8D4D E8 lea ecx, dword ptr [ebp-18]
004E3E86 |. BA 03000000 mov edx, 3
004E3E8B |. E8 A0DCF5FF call 00441B30
004E3E90 |. FF75 E8 push dword ptr [ebp-18]
004E3E93 |. 8D45 E0 lea eax, dword ptr [ebp-20]
004E3E96 |. 50 push eax
004E3E97 |. 6A 03 push 3
004E3E99 |. 8D45 DC lea eax, dword ptr [ebp-24]
004E3E9C |. 50 push eax
004E3E9D |. B9 02000000 mov ecx, 2
004E3EA2 |. BA 01000000 mov edx, 1
004E3EA7 |. 8B45 FC mov eax, dword ptr [ebp-4]
004E3EAA |. E8 25BDFEFF call 004CFBD4
004E3EAF |. 8B45 DC mov eax, dword ptr [ebp-24]
004E3EB2 |. B9 02000000 mov ecx, 2
004E3EB7 |. BA 03000000 mov edx, 3
004E3EBC |. E8 93DCF5FF call 00441B54
004E3EC1 |. FF75 E0 push dword ptr [ebp-20]
004E3EC4 |. 8D45 F4 lea eax, dword ptr [ebp-C]
004E3EC7 |. BA 03000000 mov edx, 3
004E3ECC |. E8 7711F2FF call 00405048
004E3ED1 |. 8B55 F4 mov edx, dword ptr [ebp-C]
004E3ED4 |. 58 pop eax
004E3ED5 |. E8 F211F2FF call 004050CC ; 第二次验证
004E3EDA |. 74 24 je short 004E3F00 ; 通过就跳走
004E3EDC |. 8BC6 mov eax, esi
004E3EDE |. E8 6100F2FF call 00403F44
004E3EE3 |. 6A 00 push 0
004E3EE5 |. B9 58424E00 mov ecx, 004E4258
004E3EEA |. BA 64424E00 mov edx, 004E4264 ; 本功能仅限注册用户使用!
004E3EEF |. A1 C0CD4E00 mov eax, dword ptr [4ECDC0]
004E3EF4 |. 8B00 mov eax, dword ptr [eax]
004E3EF6 |. E8 8150F8FF call 00468F7C
004E3EFB |. E9 E5020000 jmp 004E41E5
004E3F00 |> 8D55 D4 lea edx, dword ptr [ebp-2C]
004E3F03 |. 8B83 E8030000 mov eax, dword ptr [ebx+3E8]
[ 本帖最后由 2005ljb 于 2009-9-10 16:09 编辑 ] |
|