您的位置:首页 > 其它

注册卫星地图下载器2008

2008-08-25 10:04 411 查看
注册卫星地图下载器2008注册简单分析
昨天晚上同学拿给这个软件,看一下又没加壳,又是Microsoft Visual C++ 7.0 Method2 [Debug]
很奇怪都是调试版的,就搞不清楚为什么发布的软件都用调试版的,而且有注册提示,
很容易找到关键地方,想一下类似这样的软件应该属于一两分钟的事,但是还是出现
了意想不到的事,首先软件od载入,运行后就脱离了调试器,调试器中的进程终止,
只能先运行再附加进程,关键地方下断,中断后简单跟了一下就出现了真注册吗,复制过去
正确注册,本想在计算完注册吗的地方加段代码让他自己弹出注册码,但奇怪的事又发生了,
修改软件后,它运行后还是位修改的代码,这样修改后不行,那就用运行时补丁,等他运行后,
我用ReadProcessMemory和WriteProcessMemory写进我的代码,再注册,就可以弹出注册吗了,
没有时间进行具体算法分析,反正给他能用就行了
基本分析完了。。。
//下面是软件进行注册验证的地方。。。
004156B0 . 6A FF push -1
004156B2 . 68 AE6C4300 push 00436CAE ; SE 处理程序安装
004156B7 . 64:A1 0000000>mov eax, dword ptr fs:[0]
004156BD . 50 push eax
004156BE . 64:8925 00000>mov dword ptr fs:[0], esp
004156C5 . 83EC 1C sub esp, 1C
004156C8 . A1 FCA04400 mov eax, dword ptr [44A0FC]
004156CD . 53 push ebx
004156CE . 55 push ebp
004156CF . 56 push esi
004156D0 . 57 push edi
004156D1 . 68 F1030000 push 3F1
004156D6 . 894424 2C mov dword ptr [esp+2C], eax
004156DA . 8BE9 mov ebp, ecx
004156DC . E8 33EA0100 call <jmp.&MFC71.#2657_CWnd::GetDlgIt>
004156E1 . 8D4C24 1C lea ecx, dword ptr [esp+1C]
004156E5 . 8BF0 mov esi, eax
004156E7 . FF15 18A24300 call dword ptr [<&MFC71.#310_ATL::CSt>; MFC71.7C173199
004156ED . 8D4424 1C lea eax, dword ptr [esp+1C]
004156F1 . 33FF xor edi, edi
004156F3 . 50 push eax
004156F4 . 8BCE mov ecx, esi
004156F6 . 897C24 38 mov dword ptr [esp+38], edi
004156FA . E8 4FE60100 call <jmp.&MFC71.#3761_CWnd::GetWindo>
004156FF . 8D4C24 10 lea ecx, dword ptr [esp+10]
00415703 . 51 push ecx
00415704 . E8 37FAFFFF call 00415140
00415709 . 8D5424 14 lea edx, dword ptr [esp+14]
0041570D . 8BCC mov ecx, esp
0041570F . 896424 24 mov dword ptr [esp+24], esp
00415713 . 52 push edx
00415714 . C64424 3C 01 mov byte ptr [esp+3C], 1
00415719 . FF15 54A34300 call dword ptr [<&MFC71.#297_ATL::CSt>; MFC71.7C14E575
0041571F . 8D4424 1C lea eax, dword ptr [esp+1C]
00415723 . 50 push eax
00415724 . E8 87FBFFFF call 004152B0 ; 这个call进行注册码计算
00415729 . 83C4 08 add esp, 8
0041572C 50 push eax
; 这里 存放计算出来的真注册码,在这进行修改代码,可以让他弹出注册码
;让他跳到我加的代码处,弹出注册码jmp 004391C6

省略一段代码是进行注册表操作

.
.
.

004157ED . 85C0 test eax, eax
004157EF . 75 58 jnz short 00415849
004157F1 . 50 push eax
004157F2 . 6A 40 push 40
004157F4 . 68 B8D44300 push 0043D4B8 ; 这里是注册成功提示框恭喜您,注册成功!
004157F9 . C745 78 01000>mov dword ptr [ebp+78], 1
00415800 . E8 A5E90100 call <jmp.&MFC71.#1123_AfxMessageBox>
00415805 . 8D4424 24 lea eax, dword ptr [esp+24]
00415809 . 50 push eax
0041580A . E8 99E20100 call <jmp.&base.GetTitle>
0041580F . 83C4 04 add esp, 4
00415812 . 8BD8 mov ebx, eax
00415814 . C64424 34 06 mov byte ptr [esp+34], 6
00415819 . E8 44E60100 call <jmp.&MFC71.#1091_AfxGetThread>
0041581E . 85C0 test eax, eax
00415820 . 74 0B je short 0041582D
00415822 . 8B10 mov edx, dword ptr [eax]
00415824 . 8BC8 mov ecx, eax
00415826 . FF52 7C call dword ptr [edx+7C]
00415829 . 8BF0 mov esi, eax
0041582B . EB 02 jmp short 0041582F
0041582D > 33F6 xor esi, esi
0041582F > 8BCB mov ecx, ebx
00415831 . FF15 0CA24300 call dword ptr [<&MFC71.#876_ATL::CSi>; MFC71.7C158BCD
00415837 . 50 push eax
00415838 . 8BCE mov ecx, esi
0041583A . E8 CFE80100 call <jmp.&MFC71.#6067_CWnd::SetWindo>
0041583F . 8D4C24 24 lea ecx, dword ptr [esp+24]
00415843 . FF15 08A24300 call dword ptr [<&MFC71.#578_ATL::CSt>; MFC71.7C1771B1
00415849 > 8D4C24 18 lea ecx, dword ptr [esp+18]
0041584D . FF15 08A24300 call dword ptr [<&MFC71.#578_ATL::CSt>; MFC71.7C1771B1
00415853 . 85FF test edi, edi
00415855 . 74 07 je short 0041585E
00415857 . 57 push edi ; /hKey
00415858 . FF15 00A04300 call dword ptr [<&ADVAPI32.RegCloseKe>; /RegCloseKey
0041585E > 8D4C24 20 lea ecx, dword ptr [esp+20]
00415862 . C64424 34 01 mov byte ptr [esp+34], 1
00415867 . FF15 08A24300 call dword ptr [<&MFC71.#578_ATL::CSt>; MFC71.7C1771B1
0041586D . 8B45 00 mov eax, dword ptr [ebp]
00415870 . 8BCD mov ecx, ebp
00415872 . FF90 54010000 call dword ptr [eax+154]
00415878 . EB 0D jmp short 00415887
0041587A > 57 push edi
0041587B . 6A 40 push 40
0041587D . 68 94D44300 push 0043D494 ; 这里是注册成功提示框对不起,您的注册码不正确,注册失败!
00415882 . E8 23E90100 call <jmp.&MFC71.#1123_AfxMessageBox>
00415887 > 8D4C24 10 lea ecx, dword ptr [esp+10]
0041588B . FF15 08A24300 call dword ptr [<&MFC71.#578_ATL::CSt>; MFC71.7C1771B1
00415891 . 8D4C24 1C lea ecx, dword ptr [esp+1C]
00415895 . FF15 08A24300 call dword ptr [<&MFC71.#578_ATL::CSt>; MFC71.7C1771B1
0041589B . 8B4C24 2C mov ecx, dword ptr [esp+2C]
0041589F . 64:890D 00000>mov dword ptr fs:[0], ecx
004158A6 . 8B4C24 28 mov ecx, dword ptr [esp+28]
004158AA . E8 D3EE0100 call 00434782
004158AF . 5F pop edi
004158B0 . 5E pop esi
004158B1 . 5D pop ebp
004158B2 . 5B pop ebx
004158B3 . 83C4 28 add esp, 28
004158B6 . C3 retn

加入如下代码在文件空白处
004391C6 > /60 pushad
004391C7 . 6A 00 push 0 ; /Style = MB_OK|MB_APPLMODAL
004391C9 . 6A 00 push 0 ; |Title = NULL
004391CB . FF30 push dword ptr ds:[eax] ; |Text
004391CD . 6A 00 push 0 ; |hOwner = NULL
004391CF . E8 B6739177 call USER32.MessageBoxA ; /MessageBoxA
004391D4 . 61 popad
004391D5 . 50 push eax
004391D6 . 8D4C24 14 lea ecx,dword ptr ss:[esp+14]
004391DA .^ E9 52C5FDFF jmp superget.00415731
004391DF 00 db 00
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: