[Asm] 纯文本查看 复制代码
fServer::TfrmServer.LicBtnClick
00734C5C push ebp
00734C5D mov ebp,esp
00734C5F mov ecx,5
00734C64 push 0
00734C66 push 0
00734C68 dec ecx
<00734C69 jne 00734C64
00734C6B push ecx
00734C6C push ebx
00734C6D push esi
00734C6E mov ebx,eax
00734C70 xor eax,eax
00734C72 push ebp
00734C73 push 734E76
00734C78 push dword ptr fs:[eax]
00734C7B mov dword ptr fs:[eax],esp
00734C7E lea edx,[ebp-0C]
00734C81 mov eax,dword ptr [ebx+39C];
00734C87 call TCustomMaskEdit.GetText
00734C8C mov eax,dword ptr [ebp-0C]
00734C8F call FileExists //判断授权文件是否存在
00734C94 test al,al
>00734C96 jne 00734CAE //al不为0则授权文件存在
00734C98 mov ecx,734E8C; '授权文件不存在!'
00734C9D mov dl,1
00734C9F mov eax,[00408BC8]; Exception
00734CA4 call EOutOfResources.Create; Exception.Create
00734CA9 call @RaiseExcept
00734CAE xor eax,eax
00734CB0 push ebp
00734CB1 push 734E1F
00734CB6 push dword ptr fs:[eax]
00734CB9 mov dword ptr fs:[eax],esp
00734CBC mov dl,1
00734CBE mov eax,[0041F558]; TStringList
00734CC3 call TdxInplaceTextEdit.Create; TStringList.Create
00734CC8 mov dword ptr [ebp-8],eax
00734CCB lea edx,[ebp-10]
00734CCE mov eax,dword ptr [ebx+39C]; TfrmServer.LicenseEdit:TComboEdit
00734CD4 call TCustomMaskEdit.GetText
00734CD9 mov edx,dword ptr [ebp-10]
00734CDC mov eax,dword ptr [ebp-8]
00734CDF mov ecx,dword ptr [eax]
00734CE1 call dword ptr [ecx+68]; TStrings.LoadFromFile
00734CE4 lea ecx,[ebp-4]
00734CE7 xor edx,edx
00734CE9 mov eax,dword ptr [ebp-8]
00734CEC mov esi,dword ptr [eax]
00734CEE call dword ptr [esi+0C]; TStringList.Get
00734CF1 cmp dword ptr [ebp-4],0
>00734CF5 je 00734E09
00734CFB lea ecx,[ebp-14] //这个地方存放
00734CFE mov edx,734EA4;
'kjjuoiu987*(&*(uuiyui*&^*789897UIOUI&*^*&^&*Tuytu'
00734D03 mov eax,dword ptr [ebp-4] //这个地方存放授权字符串
00734D06 call 0070DDC0 //这个是主要解密函数
00734D0B mov edx,dword ptr [ebp-14] //解密后的字符串
00734D0E mov eax,dword ptr [ebp-8]
00734D11 mov ecx,dword ptr [eax]
00734D13 call dword ptr [ecx+2C]; //这个是看似没多大作用但非常重要的函数
00734D16 mov edx,734EE0; 'MacAddress'
00734D1B mov eax,dword ptr [ebp-8]
00734D1E mov ecx,dword ptr [eax]
00734D20 call dword ptr [ecx+58]; TStrings.IndexOfName
00734D23 inc eax //定位到MacAddress之后返回位置数值
>00734D24 je 00734DFF //也就是说eax的返回值不能为-1
00734D2A lea eax,[ebp-18]
00734D2D mov edx,dword ptr [ebp-4]
00734D30 call @WStrFromLStr
00734D35 mov eax,dword ptr [ebp-18]
00734D38 push eax
00734D39 mov eax,dword ptr [ebx+31C]; TfrmServer.util:Tutil
00734D3F xor ecx,ecx
00734D41 mov edx,734EF0
00734D46 call 004DF858 //向注册表值写值
00734D4B lea eax,[ebp-1C]
00734D4E push eax
00734D4F mov eax,dword ptr [ebx+31C]; TfrmServer.util:Tutil
00734D55 xor ecx,ecx
00734D57 mov edx,734F34
00734D5C call 004DF8C8 //读取注册表值
00734D61 mov eax,dword ptr [ebp-1C]
00734D64 xor edx,edx
00734D66 call @WStrCmp //\Software\Classes\VBS AUTHOR\OLEScript这个注册表的值是否为空,值不为零提示软件已经注册,不能再注册,如果为0才可以注册。
>00734D6B jne 00734DF3
00734D71 call 007310F4 //判断一个文件是否存在,这个不用分析
00734D76 test al,al
>00734D78 jne 00734DB4 //这个跳转应该让它实现才对
00734D7A lea ecx,[ebp-24]
00734D7D mov edx,734F8C;
')(*979798LJOJLJOIU&*(876876YGUGJGJGHIYI(*&*(^&*678678)(*)(IO'
00734D82 mov eax,734FD4; '0'
00734D87 call 0070DC94
00734D8C mov edx,dword ptr [ebp-24]
00734D8F lea eax,[ebp-20]
00734D92 call @WStrFromLStr
00734D97 mov eax,dword ptr [ebp-20]
00734D9A push eax
00734D9B mov eax,dword ptr [ebx+31C]; TfrmServer.util:Tutil
00734DA1 xor ecx,ecx
00734DA3 mov edx,734F34
00734DA8 call 004DF858
00734DAD call 0073102C
>00734DB2 jmp 00734DE7
00734DB4 mov edx,734F8C;
')(*979798LJOJLJOIU&*(876876YGUGJGJGHIYI(*&*(^&*678678)(*)(IO'
00734DB9 lea ecx,[ebp-2C]
00734DBC mov eax,734FE0; '9999'
00734DC1 call 0070DC94 //这个是主要加密函数,非常重要。在此处事件999加密
00734DC6 mov edx,dword ptr [ebp-2C]
00734DC9 lea eax,[ebp-28]
00734DCC call @WStrFromLStr
00734DD1 mov eax,dword ptr [ebp-28]
00734DD4 push eax
00734DD5 mov eax,dword ptr [ebx+31C]; TfrmServer.util:Tutil
00734DDB xor ecx,ecx
00734DDD mov edx,734F34
00734DE2 call 004DF858 //将999加密过之后写入注册表
00734DE7 mov eax,734FF0; '授权成功!'
00734DEC call 006AC330
>00734DF1 jmp 00734E09
00734DF3 mov eax,735004; '已有授权,不能再次授权!'
00734DF8 call 006AC330
>00734DFD jmp 00734E09
00734DFF mov eax,735024; '非法授权!'
00734E04 call 006AC2C8
00734E09 xor eax,eax
00734E0B pop edx
00734E0C pop ecx
00734E0D pop ecx