前些时间有位网友发给我一调试发电机的软件,要求帮它破解,破解非专业版,报酬1000块,心想这么高报酬接受这受了这生意,几经日夜的调试程序,终于破解了软件,这时那位网友切说他找到了注册码(最菜的方法从内存中搞到的,他好像也是经别人指点搞的),害我苦苦搞了那么久(也不过几分钟就搞定了)//钱又没搞到,真是哭笑不得,所以心里想天下没有免费午餐,所以后再也不帮别人破解软件.汗,现在不知为了气愤还是为什么要写这文章,(那位网友说:不要公开,不然以后破解不了就完了,12000元的注册会,谁不想也),所以在这发破文请软件作者们加密码好你的软件,不然发行软件时一并也把注册机也给发了.
会话了那么多,我们开工吧!软件INPOWER 5.0 2006版,每年更新一次,4.0没破过听说要狗才能安装,5.0取消了不用狗也可安装使用,不过是非专业版要经过注册后才能使用,专业版要用狗,非专业版与专业版注册会用一样12000一台机一只狗.
工具:PEID OD Resource Hacker
PEID查壳主程序为:Microsoft Visual C++ 7.0 Method2无壳//省事
使用软件,启动程序出现注册窗口,这里破非专业版输入注册码有错误提示//
OD载入主程序,S ASCII字符串没结果/
程序入口
0045F3FA > $ 6A 74 push 74-------->OE
0045F3FC . 68 80B74700 push 0047B780
0045F401 . E8 32020000 call 0045F638
0045F406 . 33DB xor ebx, ebx
0045F408 . 895D E0 mov [ebp-20], ebx
-------------------------------------------------------------------------------------------------------
没法,那么软件一启动有介面的,我的习惯是用OD动态跟/(了解程序的运行,就是破解软件的最好方法.)一直跟到:
0041C5A0 /> \55 push ebp
0041C5A1 |. 8BEC mov ebp, esp
0041C5A3 |. 6A FF push -1
0041C5A5 |. 68 51754600 push 00467551 ; SE 处理程序安装
0041C5AA |. 64:A1 0000000>mov eax, fs:[0]
0041C5B0 |. 50 push eax
0041C5B1 |. 64:8925 00000>mov fs:[0], esp
省略部分
0041C8F2 |. 68 A4344700 push 004734A4 ; /FileName = "BvLock.dll"
0041C8F7 |. FF15 68284900 call [<&KERNEL32.LoadLibraryA>] ; \LoadLibraryA
0041C8FD |. A3 FC044900 mov [4904FC], eax
0041C902 |. 833D FC044900>cmp dword ptr [4904FC], 0
0041C909 |. 75 15 jnz short 0041C920 ; 检测有没有BvLock.dll,没有就出错,很重要的一个DLL
0041C90B |. 6A 00 push 0
0041C90D |. 6A 10 push 10
0041C90F |. 68 B0344700 push 004734B0 ; ASCII "Error in loading BvLock.dll."
0041C914 |. E8 49130400 call <jmp.&MFC71.#1123_AfxMessageBox>
省略部分
0041CAF3 |. 8D45 F0 lea eax, [ebp-10]
0041CAF6 |. 50 push eax ; /pHandle
0041CAF7 |. 68 19000200 push 20019 ; |Access = KEY_READ
0041CAFC |. 6A 00 push 0 ; |Reserved = 0
0041CAFE |. 68 EC344700 push 004734EC ; |Subkey = "Software\Cummins\BServer\Config"
0041CB03 |. 68 02000080 push 80000002 ; |hKey = HKEY_LOCAL_MACHINE
0041CB08 |. FF15 A8264900 call [<&ADVAPI32.RegOpenKeyExA>] ; \RegOpenKeyExA
0041CB0E |. 8D8D D8FEFFFF lea ecx, [ebp-128]
0041CB14 |. E8 5E5AFEFF call CBravoMode::operator int
0041CB19 |. 83F8 03 cmp eax, 3
0041CB1C |. 0F85 CC000000 jnz 0041CBEE ; 检测有没有安装工具,没就出错
0041CB22 |. 8D8D ACFEFFFF lea ecx, [ebp-154]
0041CB28 |. 51 push ecx ; /pBufSize
0041CB29 |. 8D95 E4FEFFFF lea edx, [ebp-11C] ; |
0041CB2F |. 52 push edx ; |Buffer
0041CB30 |. 6A 00 push 0 ; |pValueType = NULL
0041CB32 |. 6A 00 push 0 ; |Reserved = NULL
0041CB34 |. 68 0C354700 push 0047350C ; |ValueName = "InPower Version"
0041CB39 |. 8B45 F0 mov eax, [ebp-10] ; |
0041CB3C |. 50 push eax ; |hKey
0041CB3D |. FF15 A4264900 call [<&ADVAPI32.RegQueryValueExA>] ; \RegQueryValueExA
0041CB43 |. 8985 B0FEFFFF mov [ebp-150], eax
0041CB49 |. 83BD B0FEFFFF>cmp dword ptr [ebp-150], 0
0041CB50 |. 74 35 je short 0041CB87 ; 检测安装版正确吗?
0041CB52 |. 6A FF push -1
0041CB54 |. 6A 10 push 10
0041CB56 |. 68 FD000000 push 0FD
0041CB5B |. E8 E4100400 call <jmp.&MFC71.#1122_AfxMessageBox>
0041CB60 |. C785 0CFEFFFF>mov dword ptr [ebp-1F4], 0
0041CB6A |. C745 FC FFFFF>mov dword ptr [ebp-4], -1
0041CB71 |. 8D8D B4FEFFFF lea ecx, [ebp-14C]
0041CB77 |. E8 754EFEFF call 004019F1
0041CB7C |. 8B85 0CFEFFFF mov eax, [ebp-1F4]
0041CB82 |. E9 AA0D0000 jmp 0041D931
0041CB87 |> 8D8D D8FEFFFF lea ecx, [ebp-128]
0041CB8D |. 51 push ecx
0041CB8E |. E8 091D0300 call <jmp.&BvLock.IsRegistered> ; 这里检测有狗吗?//重点CALL也是(加密狗算法所在CALL)跟进
0041CB93 |. 83C4 04 add esp, 4
0041CB96 |. 3D C05D0000 cmp eax, 5DC0
0041CB9B |. 74 4C je short 0041CBE9 ; 这用户不是加密狗用户(非专业版)不跳
0041CB9D |. 8D8D D8FEFFFF lea ecx, [ebp-128]
0041CBA3 |. E8 5858FEFF call CBravoMode::GetMode ; 办断是用户是专业版还是非专业版)跟进
0041CBA8 |. 8985 78FEFFFF mov [ebp-188], eax
0041CBAE |. 8D95 78FEFFFF lea edx, [ebp-188]
0041CBB4 |. 52 push edx
0041CBB5 |. E8 DC1C0300 call <jmp.&BvLock.BvRegProduct_4> ; 重点CALL,非专业版算法所在
0041CBBA |. 83C4 04 add esp, 4
0041CBBD |. 83F8 01 cmp eax, 1
0041CBC0 |. 74 27 je short 0041CBE9 ; 注册成功,就跳
0041CBC2 |. C785 08FEFFFF>mov dword ptr [ebp-1F8], 0
0041CBCC |. C745 FC FFFFF>mov dword ptr [ebp-4], -1
0041CBD3 |. 8D8D B4FEFFFF lea ecx, [ebp-14C]
0041CBD9 |. E8 134EFEFF call 004019F1
0041CBDE |. 8B85 08FEFFFF mov eax, [ebp-1F8]
0041CBE4 |. E9 480D0000 jmp 0041D931
0041CBE9 |> E9 52010000 jmp 0041CD40 ; 跳去加载软件运行了
0041CBEE |> 8D8D D8FEFFFF lea ecx, [ebp-128]
0041CBF4 |. E8 7E59FEFF call CBravoMode::operator int
0041CBF9 |. 83F8 02 cmp eax, 2
0041CBFC |. 0F85 C9000000 jnz 0041CCCB
0041CC02 |. 8D85 ACFEFFFF lea eax, [ebp-154]
0041CC08 |. 50 push eax ; /pBufSize
0041CC09 |. 8D8D E4FEFFFF lea ecx, [ebp-11C] ; |
0041CC0F |. 51 push ecx ; |Buffer
0041CC10 |. 6A 00 push 0 ; |pValueType = NULL
0041CC12 |. 6A 00 push 0 ; |Reserved = NULL
0041CC14 |. 68 1C354700 push 0047351C ; |ValueName = "EngTool Version"
0041CC19 |. 8B55 F0 mov edx, [ebp-10] ; |
0041CC1C |. 52 push edx ; |hKey
0041CC1D |. FF15 A4264900 call [<&ADVAPI32.RegQueryValueExA>] ; \RegQueryValueExA
0041CC23 |. 8985 B0FEFFFF mov [ebp-150], eax
0041CC29 |. 83BD B0FEFFFF>cmp dword ptr [ebp-150], 0
0041CC30 |. 74 35 je short 0041CC67
-------------------------------------------------------------------------------------------
看上面,注册,,算法是同一个DLL//两处调用分别跟入
-------------------------------------------------------------------------------------------
1.跟入第一处调用
00A89180 55 push ebp
00A89181 8BEC mov ebp, esp
00A89183 6A FF push -1
00A89185 68 1CC1AA00 push 00AAC11C
00A8918A 64:A1 00000000 mov eax, fs:[0]
省略部分
00A8927C 8D55 BC lea edx, [ebp-44]
00A8927F 52 push edx
00A89280 8B45 08 mov eax, [ebp+8]
00A89283 50 push eax
00A89284 E8 D47FFFFF call 00A8125D ; 第一次比较注册码,进
00A89289 83C4 08 add esp, 8
00A8928C 8945 A8 mov [ebp-58], eax
00A8928F 8B4D A8 mov ecx, [ebp-58]
----------------------------------
call 00A8125D来到///
----------------------------------
00A89020 55 push ebp
00A89021 8BEC mov ebp, esp
00A89023 6A FF push -1
00A89025 68 01C1AA00 push 00AAC101
00A8902A 64:A1 00000000 mov eax, fs:[0]
00A89030 50 push eax
00A89031 64:8925 0000000>mov fs:[0], esp
00A89038 83EC 30 sub esp, 30
00A8903B A1 0028AC00 mov eax, [AC2800]
00A89040 8945 F0 mov [ebp-10], eax
00A89043 C745 CC C15D000>mov dword ptr [ebp-34], 5DC1
00A8904A 8D4D E0 lea ecx, [ebp-20]
00A8904D E8 A880FFFF call 00A810FA
00A89052 8B45 08 mov eax, [ebp+8]
00A89055 50 push eax
00A89056 8D4D E8 lea ecx, [ebp-18]
00A89059 51 push ecx
00A8905A E8 3E83FFFF call GetToolRegistrationNumber
00A8905F 83C4 08 add esp, 8
00A89062 6A 04 push 4
00A89064 68 00002800 push 280000
00A89069 68 01680000 push 6801
00A8906E 6A 01 push 1
00A89070 68 102CAB00 push 00AB2C10 ; ASCII "Microsoft Base Cryptographic Provider v1.0"
00A89075 68 3C2CAB00 push 00AB2C3C ; ASCII "{47824E98-5DD5-4101-B8F1-FF65C73D3977}"
00A8907A 8D4D D0 lea ecx, [ebp-30]
00A8907D E8 1787FFFF call CRatsel::CRatsel
00A89082 C745 FC 0000000>mov dword ptr [ebp-4], 0
00A89089 6A 08 push 8
00A8908B 8D55 E0 lea edx, [ebp-20]
00A8908E 52 push edx
00A8908F 6A 08 push 8
00A89091 8D45 E8 lea eax, [ebp-18]
00A89094 50 push eax
00A89095 8D4D D0 lea ecx, [ebp-30]
00A89098 E8 6587FFFF call CRatsel::EncryptBuffer
00A8909D 8D4D C8 lea ecx, [ebp-38]
00A890A0 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<char,>; MFC71.7C173199
00A890A6 C645 FC 01 mov byte ptr [ebp-4], 1
00A890AA 0FB74D E6 movzx ecx, word ptr [ebp-1A]
00A890AE 51 push ecx
00A890AF 0FB755 E4 movzx edx, word ptr [ebp-1C]
00A890B3 52 push edx
00A890B4 0FB745 E2 movzx eax, word ptr [ebp-1E]
00A890B8 50 push eax
00A890B9 0FB74D E0 movzx ecx, word ptr [ebp-20]
00A890BD 51 push ecx
00A890BE 68 642CAB00 push 00AB2C64 ; ASCII "%X%X%X%X"
00A890C3 8D55 C8 lea edx, [ebp-38]
00A890C6 52 push edx
00A890C7 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<char>; MFC71.7C146A9D---->计算注册的CALL//算法在此找,第一次可能是狗的密码
寄存器看到:
ECX 01055548 ASCII "BBFD1BA4F17BE0DD"
EDX 01055548 ASCII "BBFD1BA4F17BE0DD"
00A890CD 83C4 18 add esp, 18
00A890D0 8B4D 0C mov ecx, [ebp+C]
00A890D3 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStringT<char>; 读取密码
00A890D9 50 push eax
00A890DA 8D4D C8 lea ecx, [ebp-38]
00A890DD FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<char,StrT>; 比较
00A890E3 85C0 test eax, eax
00A890E5 75 07 jnz short 00A890EE ; 不正确//跳的//
00A890E7 C745 CC C05D000>mov dword ptr [ebp-34], 5DC0
00A890EE 8B45 CC mov eax, [ebp-34]
00A890F1 8945 C4 mov [ebp-3C], eax
00A890F4 C645 FC 00 mov byte ptr [ebp-4], 0
00A890F8 8D4D C8 lea ecx, [ebp-38]
00A890FB FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<char,>; MFC71.7C1771B1
00A89101 C745 FC FFFFFFF>mov dword ptr [ebp-4], -1
00A89108 8D4D D0 lea ecx, [ebp-30]
00A8910B E8 B884FFFF call CRatsel::~CRatsel
00A89110 8B45 C4 mov eax, [ebp-3C]
00A89113 8B4D F4 mov ecx, [ebp-C]
00A89116 64:890D 0000000>mov fs:[0], ecx
00A8911D 8B4D F0 mov ecx, [ebp-10]
00A89120 E8 99FB0100 call 00AA8CBE
00A89125 8BE5 mov esp, ebp
00A89127 5D pop ebp
00A89128 C3 retn
----------------------------------------------------
retn第一次调用出来//进入第二处调用DLL
--------------------------------------------------------
00A89DE0 55 push ebp
00A89DE1 8BEC mov ebp, esp
00A89DE3 6A FF push -1
00A89DE5 68 F8C1AA00 push 00AAC1F8
00A89DEA 64:A1 00000000 mov eax, fs:[0]
-------------------------------------------------------
00A89E82 52 push edx
00A89E83 8D8D 00FFFFFF lea ecx, [ebp-100]
00A89E89 E8 5278FFFF call 00A816E0 ; 第一次比较注册码,进
00A89E8E 81BD F8FEFFFF C>cmp dword ptr [ebp-108], 5DC0
00A89E98 75 25 jnz short 00A89EBF
00A89E9A 8D8D FCFEFFFF lea ecx, [ebp-104]
00A89EA0 E8 9771FFFF call CBravoMode::GetMode
00A89EA5 8985 E8FEFFFF mov [ebp-118], eax
-----------------------------------------------------------
第二次装入有所不同吧>
---------------------------------------------
00AA52A0 55 push ebp----->进到这里
00AA52A1 8BEC mov ebp, esp
00AA52A3 51 push ecx
00AA52A4 894D FC mov [ebp-4], ecx
00AA52A7 8B45 08 mov eax, [ebp+8]
00AA52AA C700 C15D0000 mov dword ptr [eax], 5DC1
00AA52B0 8B4D FC mov ecx, [ebp-4]
00AA52B3 8B55 08 mov edx, [ebp+8]
00AA52B6 8991 84000000 mov [ecx+84], edx
00AA52BC 8B4D FC mov ecx, [ebp-4]
00AA52BF E8 92290000 call <jmp.&MFC71.#2020_CDialog::DoModal>----->调用MFC下面
00AA52C4 8BE5 mov esp, ebp
00AA52C6 5D pop ebp
00AA52C7 C2 0400 retn 4
00AA52CA CC int3
00AA52CB CC int3
00AA52CC CC int3
00AA52CD CC int3
00AA52CE CC int3
00AA52CF CC int3
00AA52D0 55 push ebp------------>MFC返回处注册DLL入口
00AA52D1 8BEC mov ebp, esp
00AA52D3 6A FF push -1
00AA52D5 68 E0E0AA00 push 00AAE0E0
00AA52DA 64:A1 00000000 mov eax, fs:[0]
00AA52E0 50 push eax
00AA52E1 64:8925 0000000>mov fs:[0], esp
00AA52E8 83EC 18 sub esp, 18
00AA52EB 894D E0 mov [ebp-20], ecx
00AA52EE 8B4D E0 mov ecx, [ebp-20]
00AA52F1 E8 7C2B0000 call <jmp.&MFC71.#4580_CDialog::OnInitDialog>
00AA52F6 8D4D F0 lea ecx, [ebp-10]
00AA52F9 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C173199
00AA52FF C745 FC 0000000>mov dword ptr [ebp-4], 0
00AA5306 8D4D EC lea ecx, [ebp-14]
00AA5309 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C173199
00AA530F C645 FC 01 mov byte ptr [ebp-4], 1
00AA5313 6A 2F push 2F
00AA5315 8D4D EC lea ecx, [ebp-14]
00AA5318 FF15 3463AC00 call [<&MFC71.#4035_ATL::CStringT<char,StrTraitMFC_D>; MFC71.7C153789
00AA531E 8D4D EC lea ecx, [ebp-14]
00AA5321 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStringT<char,1>::oper>; MFC71.7C158BCD
00AA5327 50 push eax
00AA5328 8B4D E0 mov ecx, [ebp-20]
00AA532B E8 362B0000 call <jmp.&MFC71.#6067_CWnd::SetWindowTextA>
00AA5330 8B45 E0 mov eax, [ebp-20]
00AA5333 8B88 80000000 mov ecx, [eax+80]
00AA5339 E8 ADC7FDFF call CBravoMode::GetMainMode
00AA533E 83F8 03 cmp eax, 3
00AA5341 75 6E jnz short 00AA53B1 ; 工具箱安装正确吗?
00AA5343 8B4D E0 mov ecx, [ebp-20]
00AA5346 81C1 88000000 add ecx, 88
00AA534C E8 21C3FDFF call 00A81672
00AA5351 8B4D E0 mov ecx, [ebp-20]
00AA5354 8B89 80000000 mov ecx, [ecx+80]
00AA535A E8 F6BCFDFF call CBravoMode::GetSubMode ; 办断用户//有狗没狗//
00AA535F 8945 DC mov [ebp-24], eax
00AA5362 837D DC 00 cmp dword ptr [ebp-24], 0
00AA5366 74 23 je short 00AA538B ; 跳//读取版本
00AA5368 837D DC 02 cmp dword ptr [ebp-24], 2
00AA536C 74 08 je short 00AA5376
00AA536E 837D DC 03 cmp dword ptr [ebp-24], 3
00AA5372 74 17 je short 00AA538B
00AA5374 EB 3B jmp short 00AA53B1
00AA5376 68 385CAB00 push 00AB5C38 ; ASCII "Inpower ONAN"
00AA537B 8B4D E0 mov ecx, [ebp-20]
00AA537E 81C1 88000000 add ecx, 88
00AA5384 E8 81BCFDFF call 00A8100A
00AA5389 EB 26 jmp short 00AA53B1
00AA538B 68 485CAB00 push 00AB5C48 ; ASCII "Inpower Pro"
00AA5390 8B4D E0 mov ecx, [ebp-20]
00AA5393 81C1 88000000 add ecx, 88
00AA5399 E8 6CBCFDFF call 00A8100A
00AA539E 68 545CAB00 push 00AB5C54 ; ASCII "Inpower Non-Pro"
00AA53A3 8B4D E0 mov ecx, [ebp-20]
00AA53A6 81C1 88000000 add ecx, 88
00AA53AC E8 59BCFDFF call 00A8100A
00AA53B1 8B55 E0 mov edx, [ebp-20]
00AA53B4 8B8A 80000000 mov ecx, [edx+80]
00AA53BA E8 2CC7FDFF call CBravoMode::GetMainMode ; 什么版本,有相应的工具箱吗?
00AA53BF 83F8 02 cmp eax, 2
00AA53C2 75 21 jnz short 00AA53E5 ; 有没有狗//没就跳,定为非专业版
00AA53C4 8B4D E0 mov ecx, [ebp-20]
00AA53C7 81C1 88000000 add ecx, 88
00AA53CD E8 A0C2FDFF call 00A81672
00AA53D2 68 645CAB00 push 00AB5C64 ; ASCII "Engineering Tool"
00AA53D7 8B4D E0 mov ecx, [ebp-20]
00AA53DA 81C1 88000000 add ecx, 88
00AA53E0 E8 25BCFDFF call 00A8100A
00AA53E5 8D4D E8 lea ecx, [ebp-18]
00AA53E8 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C173199
00AA53EE C645 FC 02 mov byte ptr [ebp-4], 2
00AA53F2 8D45 E8 lea eax, [ebp-18]
00AA53F5 50 push eax
00AA53F6 6A 00 push 0
00AA53F8 8B4D E0 mov ecx, [ebp-20]
00AA53FB 81C1 88000000 add ecx, 88
00AA5401 E8 4C2C0000 call <jmp.&MFC71.#2899_CComboBox::GetLBText> ; 取得版本
00AA5406 8D4D E8 lea ecx, [ebp-18]
00AA5409 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStringT<char,1>::oper>; MFC71.7C158BCD
00AA540F 50 push eax
00AA5410 6A FF push -1
00AA5412 8B4D E0 mov ecx, [ebp-20]
00AA5415 81C1 88000000 add ecx, 88
00AA541B E8 DCBFFDFF call 00A813FC
00AA5420 8B4D E0 mov ecx, [ebp-20]
00AA5423 E8 57C4FDFF call 00A8187F ; 非专业版注册办断//进
00AA5428 6A 00 push 0
00AA542A 8B4D E0 mov ecx, [ebp-20]
00AA542D E8 2E2A0000 call <jmp.&MFC71.#6236_CWnd::UpdateData>
00AA5432 68 DD070000 push 7DD
00AA5437 8B4D E0 mov ecx, [ebp-20]
00AA543A E8 0BBDFDFF call 00A8114A
00AA543F 50 push eax
00AA5440 E8 CEC1FDFF call 00A81613
00AA5445 83C4 08 add esp, 8
00AA5448 C745 E4 0100000>mov dword ptr [ebp-1C], 1
00AA544F C645 FC 01 mov byte ptr [ebp-4], 1
00AA5453 8D4D E8 lea ecx, [ebp-18]
00AA5456 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C1771B1
00AA545C C645 FC 00 mov byte ptr [ebp-4], 0
00AA5460 8D4D EC lea ecx, [ebp-14]
00AA5463 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C1771B1
00AA5469 C745 FC FFFFFFF>mov dword ptr [ebp-4], -1
00AA5470 8D4D F0 lea ecx, [ebp-10]
00AA5473 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<char,StrTraitMFC_DL>; MFC71.7C1771B1
00AA5479 8B45 E4 mov eax, [ebp-1C]
00AA547C 8B4D F4 mov ecx, [ebp-C]
00AA547F 64:890D 0000000>mov fs:[0], ecx
00AA5486 8BE5 mov esp, ebp
00AA5488 5D pop ebp
00AA5489 C3 retn
-----------------------------------------------------------------
call 00A8187F 进到///MFC71//就像吃肯得鸡
-----------------------------------------------------
00AA55F0 55 push ebp
00AA55F1 8BEC mov ebp, esp
00AA55F3 51 push ecx
00AA55F4 894D FC mov [ebp-4], ecx
00AA55F7 8B45 FC mov eax, [ebp-4]
00AA55FA 8B48 20 mov ecx, [eax+20]
00AA55FD 51 push ecx
00AA55FE 68 C617A800 push 00A817C6
00AA5603 FF15 4867AC00 call [<&USER32.EnumWindows>] ; USER32.EnumWindows
00AA5609 8B55 08 mov edx, [ebp+8]
00AA560C 52 push edx
00AA560D 8B4D FC mov ecx, [ebp-4]
00AA5610 E8 40BFFDFF call 00A81555
00AA5615 8BE5 mov esp, ebp
00AA5617 5D pop ebp
00AA5618 C2 0400 retn 4
00AA561B CC int3
00AA561C CC int3
00AA561D CC int3
00AA561E CC int3
00AA561F CC int3
00AA5620 55 push ebp
00AA5621 8BEC mov ebp, esp
00AA5623 6A FF push -1
00AA5625 68 F3E0AA00 push 00AAE0F3
00AA562A 64:A1 00000000 mov eax, fs:[0]
00AA5630 50 push eax
00AA5631 64:8925 0000000>mov fs:[0], esp
00AA5638 83EC 0C sub esp, 0C
00AA563B 894D E8 mov [ebp-18], ecx
00AA563E 8D4D F0 lea ecx, [ebp-10]
00AA5641 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<cha>; MFC71.7C173199
00AA5647 C745 FC 0000000>mov dword ptr [ebp-4], 0
00AA564E 8D45 F0 lea eax, [ebp-10]
00AA5651 50 push eax
00AA5652 8B4D 08 mov ecx, [ebp+8]
00AA5655 51 push ecx
00AA5656 E8 9BC3FDFF call 00A819F6
00AA565B 83C4 08 add esp, 8
00AA565E 83E8 03 sub eax, 3
00AA5661 F7D8 neg eax
00AA5663 1BC0 sbb eax, eax
00AA5665 40 inc eax
00AA5666 8845 EF mov [ebp-11], al
00AA5669 C745 FC FFFFFFF>mov dword ptr [ebp-4], -1
00AA5670 8D4D F0 lea ecx, [ebp-10]
00AA5673 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<cha>; MFC71.7C1771B1
00AA5679 8A45 EF mov al, [ebp-11]
00AA567C 8B4D F4 mov ecx, [ebp-C]
00AA567F 64:890D 0000000>mov fs:[0], ecx
00AA5686 8BE5 mov esp, ebp
00AA5688 5D pop ebp
00AA5689 C2 0400 retn 4
00AA568C CC int3
00AA568D CC int3
00AA568E CC int3
00AA568F CC int3
00AA5690 55 push ebp
00AA5691 8BEC mov ebp, esp
00AA5693 6A FF push -1
00AA5695 68 18E1AA00 push 00AAE118
00AA569A 64:A1 00000000 mov eax, fs:[0]
00AA56A0 50 push eax
00AA56A1 64:8925 0000000>mov fs:[0], esp
00AA56A8 83EC 50 sub esp, 50
00AA56AB A1 0028AC00 mov eax, [AC2800]
00AA56B0 8945 E4 mov [ebp-1C], eax
00AA56B3 894D A4 mov [ebp-5C], ecx
00AA56B6 8D4D F0 lea ecx, [ebp-10]
00AA56B9 FF15 8463AC00 call [<&MFC71.#310_ATL::CStringT<cha>; MFC71.7C173199
00AA56BF C745 FC 0000000>mov dword ptr [ebp-4], 0
00AA56C6 8B4D A4 mov ecx, [ebp-5C]
00AA56C9 81C1 88000000 add ecx, 88
00AA56CF E8 97C1FDFF call 00A8186B
00AA56D4 8945 E8 mov [ebp-18], eax
00AA56D7 8D45 F0 lea eax, [ebp-10]
00AA56DA 50 push eax
00AA56DB 8B4D E8 mov ecx, [ebp-18]
00AA56DE 51 push ecx
00AA56DF 8B4D A4 mov ecx, [ebp-5C]
00AA56E2 81C1 88000000 add ecx, 88
00AA56E8 E8 65290000 call <jmp.&MFC71.#2899_CComboBox::Ge>; 取得版本//这里没狗(非专业版)
00AA56ED 68 F05CAB00 push 00AB5CF0
00AA56F2 8B4D A4 mov ecx, [ebp-5C]
00AA56F5 83C1 78 add ecx, 78
00AA56F8 FF15 9863AC00 call [<&MFC71.#784_ATL::CStringT<cha>; MFC71.7C14FF74
00AA56FE 6A 00 push 0
00AA5700 8B4D A4 mov ecx, [ebp-5C]
00AA5703 E8 58270000 call <jmp.&MFC71.#6236_CWnd::UpdateD>
00AA5708 68 03000300 push 30003
00AA570D 8D4D EC lea ecx, [ebp-14]
00AA5710 E8 3ABFFDFF call CBravoMode::CBravoMode
00AA5715 68 F45CAB00 push 00AB5CF4 ; ASCII "Engineering Tool"
00AA571A 8D4D F0 lea ecx, [ebp-10]
00AA571D FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<ch>; MFC71.7C144DAE
00AA5723 85C0 test eax, eax
00AA5725 0F85 59010000 jnz 00AA5884 ; 检测狗(也就是工具箱)//有有没有输入狗密码//吗?没就跳罗//
00AA572B 6A 02 push 2 ; 有没有啊?//有//过//我不生成机器码给你//妈的注册狂啊
00AA572D 8D4D B4 lea ecx, [ebp-4C]
00AA5730 E8 1ABFFDFF call CBravoMode::CBravoMode
00AA5735 8B55 B4 mov edx, [ebp-4C]
00AA5738 8955 EC mov [ebp-14], edx
00AA573B 8D45 EC lea eax, [ebp-14]
00AA573E 50 push eax
00AA573F 8B4D A4 mov ecx, [ebp-5C]
00AA5742 E8 48BBFDFF call 00A8128F
00AA5747 0FB6C8 movzx ecx, al
00AA574A 83F9 01 cmp ecx, 1
00AA574D 0F85 19010000 jnz 00AA586C
00AA5753 8D55 EC lea edx, [ebp-14]
00AA5756 52 push edx
00AA5757 E8 62B9FDFF call IsRegistered
00AA575C 83C4 04 add esp, 4
00AA575F 3D C05D0000 cmp eax, 5DC0
00AA5764 75 0D jnz short 00AA5773 ; 注册后//注册按钮变OK
00AA5766 8B4D A4 mov ecx, [ebp-5C]
00AA5769 E8 77BAFDFF call 00A811E5
00AA576E E9 F7000000 jmp 00AA586A
00AA5773 68 085DAB00 push 00AB5D08 ; ASCII "OK"
00AA5778 6A 01 push 1
00AA577A 8B4D A4 mov ecx, [ebp-5C]
00AA577D E8 DC280000 call <jmp.&MFC71.#2657_CWnd::GetDlgI>
00AA5782 8BC8 mov ecx, eax
00AA5784 E8 DD260000 call <jmp.&MFC71.#6067_CWnd::SetWind>
00AA5789 8B45 A4 mov eax, [ebp-5C]
00AA578C 8B88 84000000 mov ecx, [eax+84]
00AA5792 C701 C15D0000 mov dword ptr [ecx], 5DC1
00AA5798 8D55 EC lea edx, [ebp-14]
00AA579B 52 push edx
00AA579C 8D45 DC lea eax, [ebp-24]
00AA579F 50 push eax
00AA57A0 E8 F8BBFDFF call GetToolRegistrationNumber
00AA57A5 83C4 08 add esp, 8
00AA57A8 0FB74D E2 movzx ecx, word ptr [ebp-1E]
00AA57AC 51 push ecx
00AA57AD 0FB755 E0 movzx edx, word ptr [ebp-20]
00AA57B1 52 push edx
00AA57B2 0FB745 DE movzx eax, word ptr [ebp-22]
00AA57B6 50 push eax
00AA57B7 0FB74D DC movzx ecx, word ptr [ebp-24]
00AA57BB 51 push ecx
00AA57BC 68 0C5DAB00 push 00AB5D0C ; ASCII "%04X-%04X-%04X-%04X"
00AA57C1 8B55 A4 mov edx, [ebp-5C] ; 生成狗用机器码
00AA57C4 83C2 78 add edx, 78
00AA57C7 52 push edx
00AA57C8 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<ch>; MFC71.7C146A9D
00AA57CE 83C4 18 add esp, 18
00AA57D1 68 205DAB00 push 00AB5D20 ; ASCII "Engineering Tool"
00AA57D6 8D4D D8 lea ecx, [ebp-28]
00AA57D9 FF15 A063AC00 call [<&MFC71.#304_ATL::CStringT<cha>; MFC71.7C16A59C
00AA57DF C645 FC 01 mov byte ptr [ebp-4], 1
00AA57E3 6A 24 push 24
00AA57E5 8D4D D8 lea ecx, [ebp-28]
00AA57E8 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStrin>; MFC71.7C158BCD
00AA57EE 50 push eax
00AA57EF 68 385DAB00 push 00AB5D38 ; ASCII "Dongle is already registered.Do you want to register this tool?"
00AA57F4 8B4D A4 mov ecx, [ebp-5C]
00AA57F7 E8 D0260000 call <jmp.&MFC71.#4104_CWnd::Message>; 对不起///你的狗狗呢???
00AA57FC 83F8 06 cmp eax, 6
00AA57FF 75 49 jnz short 00AA584A ; 对不起//我不跳//又没狗狗咬我
00AA5801 8B45 A4 mov eax, [ebp-5C] ; 下面还一处检测
00AA5804 83C0 74 add eax, 74
00AA5807 50 push eax
00AA5808 8B4D A4 mov ecx, [ebp-5C]
00AA580B 83C1 78 add ecx, 78
00AA580E 51 push ecx
00AA580F E8 2CBEFDFF call BvDongle::GenToolRegPass
00AA5814 83C4 08 add esp, 8
00AA5817 8B55 A4 mov edx, [ebp-5C]
00AA581A 83C2 74 add edx, 74
00AA581D 52 push edx
00AA581E 8D45 EC lea eax, [ebp-14]
00AA5821 50 push eax
00AA5822 E8 06B8FDFF call 00A8102D
00AA5827 83C4 08 add esp, 8
00AA582A 3D C05D0000 cmp eax, 5DC0
00AA582F 75 17 jnz short 00AA5848
00AA5831 8B4D A4 mov ecx, [ebp-5C]
00AA5834 8B91 84000000 mov edx, [ecx+84]
00AA583A C702 C05D0000 mov dword ptr [edx], 5DC0
00AA5840 8B4D A4 mov ecx, [ebp-5C]
00AA5843 E8 B6240000 call <jmp.&MFC71.#4735_CDialog::OnOK>
00AA5848 EB 13 jmp short 00AA585D
00AA584A 8B45 A4 mov eax, [ebp-5C]
00AA584D 83C0 78 add eax, 78
00AA5850 50 push eax
00AA5851 8D4D EC lea ecx, [ebp-14]
00AA5854 51 push ecx
00AA5855 E8 9CC1FDFF call 00A819F6
00AA585A 83C4 08 add esp, 8
00AA585D C645 FC 00 mov byte ptr [ebp-4], 0
00AA5861 8D4D D8 lea ecx, [ebp-28]
00AA5864 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<cha>; MFC71.7C1771B1
00AA586A EB 13 jmp short 00AA587F
00AA586C 8B55 A4 mov edx, [ebp-5C]
00AA586F 83C2 78 add edx, 78
00AA5872 52 push edx
00AA5873 8D45 EC lea eax, [ebp-14]
00AA5876 50 push eax
00AA5877 E8 7AC1FDFF call 00A819F6
00AA587C 83C4 08 add esp, 8
00AA587F E9 A9020000 jmp 00AA5B2D
00AA5884 68 785DAB00 push 00AB5D78 ; ASCII "Inpower Pro"
00AA5889 8D4D F0 lea ecx, [ebp-10]
00AA588C FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<ch>; 专业版有注册过吗?
00AA5892 85C0 test eax, eax
00AA5894 0F85 9B010000 jnz 00AA5A35 ; 没--跳
00AA589A 6A 03 push 3
00AA589C 8D4D B0 lea ecx, [ebp-50]
00AA589F E8 ABBDFDFF call CBravoMode::CBravoMode
00AA58A4 8B4D B0 mov ecx, [ebp-50]
00AA58A7 894D EC mov [ebp-14], ecx
00AA58AA 8D55 EC lea edx, [ebp-14]
00AA58AD 52 push edx
00AA58AE 8B4D A4 mov ecx, [ebp-5C]
00AA58B1 E8 D9B9FDFF call 00A8128F
00AA58B6 0FB6C0 movzx eax, al
00AA58B9 83F8 01 cmp eax, 1
00AA58BC 0F85 5B010000 jnz 00AA5A1D
00AA58C2 8D4D EC lea ecx, [ebp-14]
00AA58C5 51 push ecx
00AA58C6 E8 F3B7FDFF call IsRegistered
00AA58CB 83C4 04 add esp, 4
00AA58CE 3D C05D0000 cmp eax, 5DC0
00AA58D3 75 0D jnz short 00AA58E2 ; 注册后//注册按钮变OK
00AA58D5 8B4D A4 mov ecx, [ebp-5C]
00AA58D8 E8 08B9FDFF call 00A811E5
00AA58DD E9 39010000 jmp 00AA5A1B
00AA58E2 68 845DAB00 push 00AB5D84 ; ASCII "OK"
00AA58E7 6A 01 push 1
00AA58E9 8B4D A4 mov ecx, [ebp-5C]
00AA58EC E8 6D270000 call <jmp.&MFC71.#2657_CWnd::GetDlgI>
00AA58F1 8BC8 mov ecx, eax
00AA58F3 E8 6E250000 call <jmp.&MFC71.#6067_CWnd::SetWind>
00AA58F8 8B55 A4 mov edx, [ebp-5C]
00AA58FB 8B82 84000000 mov eax, [edx+84]
00AA5901 C700 C15D0000 mov dword ptr [eax], 5DC1
00AA5907 8D4D EC lea ecx, [ebp-14]
00AA590A 51 push ecx
00AA590B 8D55 D0 lea edx, [ebp-30]
00AA590E 52 push edx
00AA590F E8 89BAFDFF call GetToolRegistrationNumber
00AA5914 83C4 08 add esp, 8
00AA5917 0FB745 D6 movzx eax, word ptr [ebp-2A]
00AA591B 50 push eax
00AA591C 0FB74D D4 movzx ecx, word ptr [ebp-2C]
00AA5920 51 push ecx
00AA5921 0FB755 D2 movzx edx, word ptr [ebp-2E]
00AA5925 52 push edx
00AA5926 0FB745 D0 movzx eax, word ptr [ebp-30]
00AA592A 50 push eax
00AA592B 68 885DAB00 push 00AB5D88 ; ASCII "%04X-%04X-%04X-%04X"
00AA5930 8B4D A4 mov ecx, [ebp-5C] ; 生成硬件狗机器码
00AA5933 83C1 78 add ecx, 78 ; 没注册过的//要在这里算
00AA5936 51 push ecx
00AA5937 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<ch>; MFC71.7C146A9D
00AA593D 83C4 18 add esp, 18
00AA5940 8B55 A4 mov edx, [ebp-5C]
00AA5943 8B8A 80000000 mov ecx, [edx+80]
00AA5949 E8 EEB6FDFF call CBravoMode::GetMode
00AA594E 50 push eax
00AA594F 8D4D CC lea ecx, [ebp-34]
00AA5952 E8 F8BCFDFF call CBravoMode::CBravoMode
00AA5957 68 9C5DAB00 push 00AB5D9C
00AA595C 8D4D C8 lea ecx, [ebp-38]
00AA595F FF15 A063AC00 call [<&MFC71.#304_ATL::CStringT<cha>; MFC71.7C16A59C
00AA5965 C645 FC 02 mov byte ptr [ebp-4], 2
00AA5969 8D4D CC lea ecx, [ebp-34]
00AA596C E8 E4B6FDFF call CBravoMode::GetSubMode
00AA5971 83F8 02 cmp eax, 2
00AA5974 75 10 jnz short 00AA5986
00AA5976 68 A05DAB00 push 00AB5DA0 ; ASCII "InPower ONAN"
00AA597B 8D4D C8 lea ecx, [ebp-38]
00AA597E FF15 9863AC00 call [<&MFC71.#784_ATL::CStringT<cha>; MFC71.7C14FF74
00AA5984 EB 0E jmp short 00AA5994
00AA5986 68 B05DAB00 push 00AB5DB0 ; ASCII "InPower"
00AA598B 8D4D C8 lea ecx, [ebp-38]
00AA598E FF15 9863AC00 call [<&MFC71.#784_ATL::CStringT<cha>; MFC71.7C14FF74
00AA5994 6A 24 push 24
00AA5996 8D4D C8 lea ecx, [ebp-38]
00AA5999 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStrin>; MFC71.7C158BCD
00AA599F 50 push eax
00AA59A0 68 B85DAB00 push 00AB5DB8 ; ASCII "Dongle is already registered.Do you want to register this tool?"
00AA59A5 8B4D A4 mov ecx, [ebp-5C]
00AA59A8 E8 1F250000 call <jmp.&MFC71.#4104_CWnd::Message>; 没有找到狗狗哦
00AA59AD 83F8 06 cmp eax, 6
00AA59B0 75 49 jnz short 00AA59FB ; 有就跳了
00AA59B2 8B45 A4 mov eax, [ebp-5C]
00AA59B5 83C0 74 add eax, 74
00AA59B8 50 push eax
00AA59B9 8B4D A4 mov ecx, [ebp-5C]
00AA59BC 83C1 78 add ecx, 78
00AA59BF 51 push ecx
00AA59C0 E8 7BBCFDFF call BvDongle::GenToolRegPass
00AA59C5 83C4 08 add esp, 8
00AA59C8 8B55 A4 mov edx, [ebp-5C]
00AA59CB 83C2 74 add edx, 74
00AA59CE 52 push edx
00AA59CF 8D45 EC lea eax, [ebp-14]
00AA59D2 50 push eax
00AA59D3 E8 55B6FDFF call 00A8102D
00AA59D8 83C4 08 add esp, 8
00AA59DB 3D C05D0000 cmp eax, 5DC0
00AA59E0 75 17 jnz short 00AA59F9
00AA59E2 8B4D A4 mov ecx, [ebp-5C]
00AA59E5 8B91 84000000 mov edx, [ecx+84]
00AA59EB C702 C05D0000 mov dword ptr [edx], 5DC0
00AA59F1 8B4D A4 mov ecx, [ebp-5C]
00AA59F4 E8 05230000 call <jmp.&MFC71.#4735_CDialog::OnOK>
00AA59F9 EB 13 jmp short 00AA5A0E
00AA59FB 8B45 A4 mov eax, [ebp-5C]
00AA59FE 83C0 78 add eax, 78
00AA5A01 50 push eax
00AA5A02 8D4D EC lea ecx, [ebp-14]
00AA5A05 51 push ecx
00AA5A06 E8 EBBFFDFF call 00A819F6
00AA5A0B 83C4 08 add esp, 8
00AA5A0E C645 FC 00 mov byte ptr [ebp-4], 0
00AA5A12 8D4D C8 lea ecx, [ebp-38]
00AA5A15 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<cha>; MFC71.7C1771B1
00AA5A1B EB 13 jmp short 00AA5A30
00AA5A1D 8B55 A4 mov edx, [ebp-5C]
00AA5A20 83C2 78 add edx, 78
00AA5A23 52 push edx
00AA5A24 8D45 EC lea eax, [ebp-14]
00AA5A27 50 push eax
00AA5A28 E8 C9BFFDFF call 00A819F6
00AA5A2D 83C4 08 add esp, 8
00AA5A30 E9 F8000000 jmp 00AA5B2D
00AA5A35 68 F85DAB00 push 00AB5DF8 ; ASCII "Inpower Non-Pro"
00AA5A3A 8D4D F0 lea ecx, [ebp-10]
00AA5A3D FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<ch>; 好!终于确定用户是非专业版了
00AA5A43 85C0 test eax, eax
00AA5A45 75 6B jnz short 00AA5AB2 ; 不跳罗//那就去比较吧
00AA5A47 68 03000300 push 30003
00AA5A4C 8D4D AC lea ecx, [ebp-54]
00AA5A4F E8 FBBBFDFF call CBravoMode::CBravoMode
00AA5A54 8B4D AC mov ecx, [ebp-54]
00AA5A57 894D EC mov [ebp-14], ecx
00AA5A5A 8D55 EC lea edx, [ebp-14]
00AA5A5D 52 push edx
00AA5A5E E8 5BB6FDFF call IsRegistered ; 注册码比较办断CALL
00AA5A63 83C4 04 add esp, 4 ; TETN出来
00AA5A66 3D C05D0000 cmp eax, 5DC0
00AA5A6B 75 0A jnz short 00AA5A77 ; 此版本已是注册的非专业版
00AA5A6D 8B4D A4 mov ecx, [ebp-5C]
00AA5A70 E8 70B7FDFF call 00A811E5 ; 提示你已经注册了非专业版
00AA5A75 EB 39 jmp short 00AA5AB0 ; 跳走///不读机器码//
00AA5A77 8D45 EC lea eax, [ebp-14]
00AA5A7A 50 push eax
00AA5A7B 8D4D C0 lea ecx, [ebp-40]
00AA5A7E 51 push ecx
00AA5A7F E8 19B9FDFF call GetToolRegistrationNumber
00AA5A84 83C4 08 add esp, 8
00AA5A87 0FB755 C6 movzx edx, word ptr [ebp-3A]
00AA5A8B 52 push edx
00AA5A8C 0FB745 C4 movzx eax, word ptr [ebp-3C]
00AA5A90 50 push eax
00AA5A91 0FB74D C2 movzx ecx, word ptr [ebp-3E]
00AA5A95 51 push ecx
00AA5A96 0FB755 C0 movzx edx, word ptr [ebp-40]
00AA5A9A 52 push edx
00AA5A9B 68 085EAB00 push 00AB5E08 ; ASCII "%04X-%04X-%04X-%04X"
00AA5AA0 8B45 A4 mov eax, [ebp-5C] ; 生成非专业版机器码
00AA5AA3 83C0 78 add eax, 78 ; 下面还有一处
00AA5AA6 50 push eax
00AA5AA7 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<ch>; MFC71.7C146A9D
00AA5AAD 83C4 18 add esp, 18
00AA5AB0 EB 7B jmp short 00AA5B2D ; 不是有狗狗的版本...GO GO///
00AA5AB2 68 1C5EAB00 push 00AB5E1C ; ASCII "Inpower ONAN"
00AA5AB7 8D4D F0 lea ecx, [ebp-10]
00AA5ABA FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<ch>; MFC71.7C144DAE
00AA5AC0 85C0 test eax, eax
00AA5AC2 75 69 jnz short 00AA5B2D
00AA5AC4 68 03000200 push 20003
00AA5AC9 8D4D A8 lea ecx, [ebp-58]
00AA5ACC E8 7EBBFDFF call CBravoMode::CBravoMode
00AA5AD1 8B4D A8 mov ecx, [ebp-58]
00AA5AD4 894D EC mov [ebp-14], ecx
00AA5AD7 8D55 EC lea edx, [ebp-14]
00AA5ADA 52 push edx
00AA5ADB E8 DEB5FDFF call IsRegistered
00AA5AE0 83C4 04 add esp, 4
00AA5AE3 3D C05D0000 cmp eax, 5DC0
00AA5AE8 75 0A jnz short 00AA5AF4
00AA5AEA 8B4D A4 mov ecx, [ebp-5C]
00AA5AED E8 F3B6FDFF call 00A811E5
00AA5AF2 EB 39 jmp short 00AA5B2D
00AA5AF4 8D45 EC lea eax, [ebp-14]
00AA5AF7 50 push eax
00AA5AF8 8D4D B8 lea ecx, [ebp-48]
00AA5AFB 51 push ecx
00AA5AFC E8 9CB8FDFF call GetToolRegistrationNumber
00AA5B01 83C4 08 add esp, 8
00AA5B04 0FB755 BE movzx edx, word ptr [ebp-42]
00AA5B08 52 push edx
00AA5B09 0FB745 BC movzx eax, word ptr [ebp-44]
00AA5B0D 50 push eax
00AA5B0E 0FB74D BA movzx ecx, word ptr [ebp-46]
00AA5B12 51 push ecx
00AA5B13 0FB755 B8 movzx edx, word ptr [ebp-48]
00AA5B17 52 push edx
00AA5B18 68 2C5EAB00 push 00AB5E2C ; ASCII "%04X-%04X-%04X-%04X"
00AA5B1D 8B45 A4 mov eax, [ebp-5C] ; 生成非专业版机器码//没注册过的//要在这里算
00AA5B20 83C0 78 add eax, 78
00AA5B23 50 push eax
00AA5B24 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<ch>; MFC71.7C146A9D
00AA5B2A 83C4 18 add esp, 18
00AA5B2D 6A 00 push 0 ; 两个版本都在这里入口
00AA5B2F 8B4D A4 mov ecx, [ebp-5C]
00AA5B32 E8 29230000 call <jmp.&MFC71.#6236_CWnd::UpdateD>
00AA5B37 C745 FC FFFFFFF>mov dword ptr [ebp-4], -1
00AA5B3E 8D4D F0 lea ecx, [ebp-10]
00AA5B41 FF15 B063AC00 call [<&MFC71.#578_ATL::CStringT<cha>; MFC71.7C1771B1
00AA5B47 8B4D F4 mov ecx, [ebp-C]
00AA5B4A 64:890D 0000000>mov fs:[0], ecx
00AA5B51 8B4D E4 mov ecx, [ebp-1C]
00AA5B54 E8 65310000 call 00AA8CBE
00AA5B59 8BE5 mov esp, ebp
00AA5B5B 5D pop ebp
00AA5B5C C3 retn
----------------------------------------------------------------
retn出来第二次正式比较,,呵呵,是不是和刚才第一次来的一样//
00A89280 8B45 08 mov eax, [ebp+8]
00A89283 50 push eax
00A89284 E8 D47FFFFF call 00A8125D ; 第二次比较注册码,进
00A89289 83C4 08 add esp, 8
00A8928C 8945 A8 mov [ebp-58], eax
--------------------------------------------------------------
00A89020 55 push ebp
00A89021 8BEC mov ebp, esp
00A89023 6A FF push -1
00A89025 68 01C1AA00 push 00AAC101
略一点
00A890BD 51 push ecx
00A890BE 68 642CAB00 push 00AB2C64 ; ASCII "%X%X%X%X"
00A890C3 8D55 C8 lea edx, [ebp-38]
00A890C6 52 push edx
00A890C7 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<char,StrT>; 计算注册的CALL//算法在此找,第一次可能是狗的密码
我机上寄存器上看到:
ECX 01055B08 ASCII "7C40603C308B45D8"
EDX 01055B08 ASCII "7C40603C308B45D8"
呵呵//那就是12000块的东东了//非专业版注册码.
00A890CD 83C4 18 add esp, 18
00A890D0 8B4D 0C mov ecx, [ebp+C]
00A890D3 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStringT<char>; 读取密码
00A890D9 50 push eax
00A890DA 8D4D C8 lea ecx, [ebp-38]
00A890DD FF15 3863AC00 call [<&MFC71.#1482_ATL::CStringT<char,StrT>; 比较
00A890E3 85C0 test eax, eax
00A890E5 75 07 jnz short 00A890EE ; 不正确//跳的//
---------------------------------------------------------------------------------------------
上面00AA5B5C 处 retn来到///
略一点(下面粗略分析)
00AA5BD5 83F8 02 cmp eax, 2
00AA5BD8 75 1E jnz short 00AA5BF8 ; 有加密狗的//已注册
00AA5BDA 68 00000500 push 50000
00AA5BDF 68 405EAB00 push 00AB5E40 ; ASCII "Engineering Tool"
00AA5BE4 8D4D EC lea ecx, [ebp-14]
00AA5BE7 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStrin>; MFC71.7C158BCD
00AA5BED 50 push eax
00AA5BEE 6A 00 push 0 ; 提示你已注册
00AA5BF0 FF15 E866AC00 call [<&USER32.MessageBoxA>] ; USER32.MessageBoxA
00AA5BF6 EB 47 jmp short 00AA5C3F
00AA5BF8 8D4D F0 lea ecx, [ebp-10]
00AA5BFB E8 55B4FDFF call CBravoMode::GetSubMode
00AA5C00 83F8 02 cmp eax, 2
00AA5C03 75 1E jnz short 00AA5C23 ; 非专业版//已注册
00AA5C05 68 00000500 push 50000
00AA5C0A 68 545EAB00 push 00AB5E54 ; ASCII "InPower ONAN"
00AA5C0F 8D4D EC lea ecx, [ebp-14]
00AA5C12 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStrin>; MFC71.7C158BCD
00AA5C18 50 push eax
00AA5C19 6A 00 push 0 ; 提示你已注册
00AA5C1B FF15 E866AC00 call [<&USER32.MessageBoxA>] ; USER32.MessageBoxA
00AA5C21 EB 1C jmp short 00AA5C3F
00AA5C23 68 00000500 push 50000
00AA5C28 68 645EAB00 push 00AB5E64 ; ASCII "InPower"
00AA5C2D 8D4D EC lea ecx, [ebp-14]
00AA5C30 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStrin>; MFC71.7C158BCD
00AA5C36 50 push eax
00AA5C37 6A 00 push 0 ; 提示你已注册
00AA5C39 FF15 E866AC00 call [<&USER32.MessageBoxA>] ; USER32.MessageBoxA
略一点
========================================================================================
好了//软件已分析到这已基本完了//狗狗的//我再怎分析//因为软件使用过程中还有很检测//
在此过程序中//我们分析看到了非专业版的注册码//为此小Q想写一算法注册机//不过由于时间问题没再分析算法//有兴趣的可看下//现在已是零成3.30分了//好累哦//这时破解的精神让我再次提神.
前几天还在学习PEDIY技术///好吧好吧?没时间//那我们就来PEDIY 把软件的软件做成我们完美的算法注册机吧?想到就做//杀它个精光.//
========================================================================================
//分析//我们要把正确注册显出来就得有 MESSAGEBOX含数//
好//这MESSAGEBOX含数每个软件都有的了//他是WINDOWS吗?
OD载入程序运行程序下BP MESSAGEBOX 随便搞个消息框出来//取得MESSAGEBOX含数调用地址:call [0AC66E8]
好了//我们不是在注册DLL里看到注册码//基于PEDIY的思想/关建就在这
00A890BE 68 642CAB00 push 00AB2C64 ; ASCII "%X%X%X%X"
00A890C3 8D55 C8 lea edx, [ebp-38]
00A890C6 52 push edx
00A890C7 FF15 9C63AC00 call [<&MFC71.#2322_ATL::CStringT<char>; MFC71.7C146A9D---->计算注册的CALL//算法在此找,第一次可能是狗的密码
我机上寄存器上看到:
ECX 01055B08 ASCII "7C40603C308B45D8"
EDX 01055B08 ASCII "7C40603C308B45D8"
00A890CD 83C4 18 add esp, 18---->上面CALL出来正确注册码//我们就在这取值来显示在MESSAGEBOX上
00A890D0 8B4D 0C mov ecx, [ebp+C]
00A890D3 FF15 A463AC00 call [<&MFC71.#876_ATL::CSimpleStringT<char>; 读取密码
=========================================================================================
我们找块空地//我找在00AB1790
在00A890CD那里JMP 00AB1790
写下如下代码:
pushad---------------->堆栈平衡
mov eax, edx------>把EDX的注册码传入EAX
push eax----------->压栈
push 0------------->压栈
call [0AC66E8]------->显示
popad----------------->会服堆栈
add esp, 18------->还原
mov ecx, [ebp+C]-->还原
jmp 00A890D3------>回去
===========================================================================================
然后保存//用Resource Hacker打开BvLock.dll 资源对话框2003项写上
==========================================================================================
2003 DIALOGEX 0, 0, 242, 115
STYLE DS_MODALFRAME | DS_SETFOREGROUND | WS_POPUP | WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_TOPMOST
CAPTION "关于[qyc]软件破解-->流行时代 看雪学院 OCN"
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
FONT 8, "MS Sans Serif"
{
CONTROL "&Register", 1, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 62, 163, 0, 0
CONTROL "&关闭", 2, BUTTON, BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 99, 95, 50, 14
CONTROL "这是一个发电机调试软件的非专业版算法注册机.\n它生成的KEY可以注册2006年发行INPOWER 5.0非专\n业版.本注册机不用你手工输入机器码来计算注册码(一切都是为了你着想) BY 小Q 2006年2月25日.", 2012, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE | WS_GROUP, 6, 18, 230, 33
CONTROL "", -1, BUTTON, BS_GROUPBOX | WS_CHILD | WS_VISIBLE, 3, 0, 236, 112
CONTROL "", 2014, EDIT, ES_LEFT | ES_AUTOHSCROLL | WS_CHILD | WS_BORDER | WS_TABSTOP, 195, 131, 0, 0
CONTROL "请问你把注册码记在纸上了吗?关闭注册进行注册吧!哈哈.", 2011, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 23, 81, 211, 12
CONTROL "有空来来看雪学院:http://www.pediy.com.", 2013, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE | WS_GROUP, 43, 55, 157, 10
CONTROL "", 2009, EDIT, ES_LEFT | ES_UPPERCASE | ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 138, 130, 0, 0
CONTROL "", 2008, EDIT, ES_LEFT | ES_AUTOHSCROLL | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER, 138, 106, 0, 0
CONTROL "o○o流行时代o○o http://www.popbase.net", 2017, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 47, 68, 153, 12
CONTROL "说明:", -1, STATIC, SS_LEFT | WS_CHILD | WS_VISIBLE | WS_GROUP, 110, 6, 31, 12
CONTROL "", 2023, COMBOBOX, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 118, 11, 0, 0
CONTROL "请问你把注册码记在纸上了吗?关闭注册进行注册吧!哈哈.", -1, STATIC, SS_LEFT | WS_CHILD | WS_GROUP, 25, 116, 204, 10
}
==========================================================================================
哈哈就成了关于对话框了///
==========================================================================================
好了//在此破解加写不用源程序的完美算法注册机 就完成了//
小Q第一次分析软件到零成3.45分//累死了//洗澡//睡觉..明天起来买菜//上班//请看雪版主给我上传文件权限//好吗?
BY QYC 2006---2008//转贴请保持完整/
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!