机动车驾驶员理论复习及模拟考试系统 破解过程

     日期:2005年3月5日   破解人:Baby2008
———————————————————————————————————————————


【软件名称】:机动车驾驶员理论复习及模拟考试系统
【软件大小】:10M
【下载地址】:http://www.jiabosoft.com
【软件简介】:
【软件限制】:未注册不能进入系统
【破解声明】:初学Crack,只是感兴趣,没有其它目的。失误之处敬请诸位大侠赐教!
【破解工具】:OLLYDBG 1.1 ,PEID0.92,DeDe 

———————————————————————————————————————————
 
【破解过程】:
先用PEID 0.92汉化增强版查壳,无壳,Delphi4.0-5.0
delphi程序,先用Dede处理,输出map文件
用od打开目标程序:jdcks.exe ,用mapconv插件引入Dede输出的map文件,替换标签及插件。然后查找字符,可以找到“确认要注册”字样,双击来到cpu窗口,向上翻看可以找到这里:以下就是具体算法

0049B119    .  BA 60B44900     mov edx,JDCKS.0049B460
0049B11E <> .  E8 6D53F9FF     call JDCKS.00430490                  ;  ->controls.TControl.SetText(TControl;TCaption);
0049B123    .  A1 58084A00     mov eax,dword ptr ds:[4A0858]
0049B128    .  8B00            mov eax,dword ptr ds:[eax]
0049B12A <> .  8B80 EC020000   mov eax,dword ptr ds:[eax+2EC]       ;  *TForm3.Label2:TLabel
0049B130    .  BA 54B44900     mov edx,JDCKS.0049B454
0049B135 <> .  E8 5653F9FF     call JDCKS.00430490                  ;  ->controls.TControl.SetText(TControl;TCaption);
0049B13A    .  A1 58084A00     mov eax,dword ptr ds:[4A0858]
0049B13F    .  8B00            mov eax,dword ptr ds:[eax]
0049B141 <> .  8B80 F0020000   mov eax,dword ptr ds:[eax+2F0]       ;  *TForm3.Label3:TLabel
0049B147    .  BA 80B44900     mov edx,JDCKS.0049B480
0049B14C <> .  E8 3F53F9FF     call JDCKS.00430490                  ;  ->controls.TControl.SetText(TControl;TCaption);
0049B151    .  A1 58084A00     mov eax,dword ptr ds:[4A0858]
0049B156    .  8B00            mov eax,dword ptr ds:[eax]
0049B158    .  8B10            mov edx,dword ptr ds:[eax]
0049B15A <> .  FF92 D8000000   call dword ptr ds:[edx+D8]           ;  ->TForm3.ShowModal()
0049B160    .  48              dec eax
0049B161    .  0F85 81020000   jnz JDCKS.0049B3E8
0049B167    .  8B45 FC         mov eax,dword ptr ss:[ebp-4]         ;  确定要注册
0049B16A <> .  E8 C9F5FFFF     call <JDCKS.<-TForm10@jy>            ;  注册关键
0049B16F    .  8945 F8         mov dword ptr ss:[ebp-8],eax
0049B172    .  8B45 FC         mov eax,dword ptr ss:[ebp-4]
0049B175    .  FF80 F4020000   inc dword ptr ds:[eax+2F4]
0049B17B    .  68 8CB44900     push JDCKS.0049B48C                  ;  ASCII "SELECT * FROM ""




0049B16A <> .  E8 C9F5FFFF     call <JDCKS.<-TForm10@jy> 函数

---------------------------------------------
0049A738 <>/$  55              push ebp                             ;  <-TForm10@jy
0049A739   |.  8BEC            mov ebp,esp
0049A73B   |.  B9 29000000     mov ecx,29
0049A740   |>  6A 00           /push 0
0049A742   |.  6A 00           |push 0
0049A744   |.  49              |dec ecx
0049A745   |.^ 75 F9           \jnz short JDCKS.0049A740
0049A747   |.  51              push ecx
0049A748   |.  53              push ebx
0049A749   |.  56              push esi
0049A74A   |.  8BD8            mov ebx,eax
0049A74C   |.  B9 10000000     mov ecx,10
0049A751   |.  8D45 B4         lea eax,dword ptr ss:[ebp-4C]
0049A754   |.  8B15 D0104000   mov edx,dword ptr ds:[4010D0]        ;  JDCKS.004010D4
0049A75A <>|.  E8 619CF6FF     call JDCKS.004043C0                  ;  ->system.@InitializeArray;
0049A75F   |.  B9 10000000     mov ecx,10
0049A764   |.  8D85 74FFFFFF   lea eax,dword ptr ss:[ebp-8C]
0049A76A   |.  8B15 D0104000   mov edx,dword ptr ds:[4010D0]        ;  JDCKS.004010D4
0049A770 <>|.  E8 4B9CF6FF     call JDCKS.004043C0                  ;  ->system.@InitializeArray;
0049A775   |.  33C0            xor eax,eax
0049A777   |.  55              push ebp
0049A778   |.  68 20B04900     push <JDCKS.->system.@HandleFinally;>
0049A77D   |.  64:FF30         push dword ptr fs:[eax]
0049A780   |.  64:8920         mov dword ptr fs:[eax],esp
0049A783   |.  8D55 F8         lea edx,dword ptr ss:[ebp-8]
0049A786 <>|.  8B83 E0020000   mov eax,dword ptr ds:[ebx+2E0]       ;  *TForm10.StaticText1:TStaticText
0049A78C <>|.  E8 CF5CF9FF     call JDCKS.00430460                  ;  ->controls.TControl.GetText(TControl):TCaption;
0049A791   |.  8D55 F4         lea edx,dword ptr ss:[ebp-C]
0049A794 <>|.  8B83 E4020000   mov eax,dword ptr ds:[ebx+2E4]       ;  *TForm10.Edit2:TEdit
0049A79A <>|.  E8 C15CF9FF     call JDCKS.00430460                  ;  ->controls.TControl.GetText(TControl):TCaption;
0049A79F   |.  8D85 6CFFFFFF   lea eax,dword ptr ss:[ebp-94]
0049A7A5   |.  50              push eax
0049A7A6   |.  B9 01000000     mov ecx,1
0049A7AB   |.  BA 01000000     mov edx,1
0049A7B0   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]         ;  机器码
0049A7B3 <>|.  E8 6898F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A7B8   |.  8B85 6CFFFFFF   mov eax,dword ptr ss:[ebp-94]        ;  Ascii
0049A7BE <>|.  E8 DDE7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A7C3   |.  8BD8            mov ebx,eax
0049A7C5   |.  8D85 68FFFFFF   lea eax,dword ptr ss:[ebp-98]
0049A7CB   |.  50              push eax
0049A7CC   |.  B9 01000000     mov ecx,1
0049A7D1   |.  BA 01000000     mov edx,1
0049A7D6   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A7D9 <>|.  E8 4298F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A7DE   |.  8B85 68FFFFFF   mov eax,dword ptr ss:[ebp-98]
0049A7E4 <>|.  E8 B7E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A7E9   |.  0FAFD8          imul ebx,eax
0049A7EC   |.  8BC3            mov eax,ebx
0049A7EE   |.  83C0 0C         add eax,0C
0049A7F1   |.  B9 0A000000     mov ecx,0A
0049A7F6   |.  99              cdq
0049A7F7   |.  F7F9            idiv ecx
0049A7F9   |.  8BC2            mov eax,edx
0049A7FB   |.  8D95 70FFFFFF   lea edx,dword ptr ss:[ebp-90]
0049A801 <>|.  E8 6AE7F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A806   |.  8B95 70FFFFFF   mov edx,dword ptr ss:[ebp-90]
0049A80C   |.  8D45 B4         lea eax,dword ptr ss:[ebp-4C]
0049A80F <>|.  E8 1C94F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A814   |.  8D85 60FFFFFF   lea eax,dword ptr ss:[ebp-A0]
0049A81A   |.  50              push eax
0049A81B   |.  B9 01000000     mov ecx,1
0049A820   |.  BA 02000000     mov edx,2
0049A825   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A828 <>|.  E8 F397F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A82D   |.  8B85 60FFFFFF   mov eax,dword ptr ss:[ebp-A0]
0049A833 <>|.  E8 68E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A838   |.  8BD8            mov ebx,eax
0049A83A   |.  8D85 5CFFFFFF   lea eax,dword ptr ss:[ebp-A4]
0049A840   |.  50              push eax
0049A841   |.  B9 01000000     mov ecx,1
0049A846   |.  BA 02000000     mov edx,2
0049A84B   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A84E <>|.  E8 CD97F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A853   |.  8B85 5CFFFFFF   mov eax,dword ptr ss:[ebp-A4]
0049A859 <>|.  E8 42E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A85E   |.  0FAFD8          imul ebx,eax
0049A861   |.  8BC3            mov eax,ebx
0049A863   |.  83C0 0A         add eax,0A
0049A866   |.  B9 0A000000     mov ecx,0A
0049A86B   |.  99              cdq
0049A86C   |.  F7F9            idiv ecx
0049A86E   |.  8BC2            mov eax,edx
0049A870   |.  8D95 64FFFFFF   lea edx,dword ptr ss:[ebp-9C]
0049A876 <>|.  E8 F5E6F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A87B   |.  8B95 64FFFFFF   mov edx,dword ptr ss:[ebp-9C]
0049A881   |.  8D45 B8         lea eax,dword ptr ss:[ebp-48]
0049A884 <>|.  E8 A793F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A889   |.  8D85 54FFFFFF   lea eax,dword ptr ss:[ebp-AC]
0049A88F   |.  50              push eax
0049A890   |.  B9 01000000     mov ecx,1
0049A895   |.  BA 03000000     mov edx,3
0049A89A   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A89D <>|.  E8 7E97F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A8A2   |.  8B85 54FFFFFF   mov eax,dword ptr ss:[ebp-AC]
0049A8A8 <>|.  E8 F3E6F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A8AD   |.  8BD8            mov ebx,eax
0049A8AF   |.  8D85 50FFFFFF   lea eax,dword ptr ss:[ebp-B0]
0049A8B5   |.  50              push eax
0049A8B6   |.  B9 01000000     mov ecx,1
0049A8BB   |.  BA 03000000     mov edx,3
0049A8C0   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A8C3 <>|.  E8 5897F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A8C8   |.  8B85 50FFFFFF   mov eax,dword ptr ss:[ebp-B0]
0049A8CE <>|.  E8 CDE6F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A8D3   |.  0FAFD8          imul ebx,eax
0049A8D6   |.  8BC3            mov eax,ebx
0049A8D8   |.  83C0 04         add eax,4
0049A8DB   |.  B9 0A000000     mov ecx,0A
0049A8E0   |.  99              cdq
0049A8E1   |.  F7F9            idiv ecx
0049A8E3   |.  8BC2            mov eax,edx
0049A8E5   |.  8D95 58FFFFFF   lea edx,dword ptr ss:[ebp-A8]
0049A8EB <>|.  E8 80E6F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A8F0   |.  8B95 58FFFFFF   mov edx,dword ptr ss:[ebp-A8]
0049A8F6   |.  8D45 BC         lea eax,dword ptr ss:[ebp-44]
0049A8F9 <>|.  E8 3293F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A8FE   |.  8D85 48FFFFFF   lea eax,dword ptr ss:[ebp-B8]
0049A904   |.  50              push eax
0049A905   |.  B9 01000000     mov ecx,1
0049A90A   |.  BA 04000000     mov edx,4
0049A90F   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A912 <>|.  E8 0997F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A917   |.  8B85 48FFFFFF   mov eax,dword ptr ss:[ebp-B8]
0049A91D <>|.  E8 7EE6F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A922   |.  8BD8            mov ebx,eax
0049A924   |.  8D85 44FFFFFF   lea eax,dword ptr ss:[ebp-BC]
0049A92A   |.  50              push eax
0049A92B   |.  B9 01000000     mov ecx,1
0049A930   |.  BA 04000000     mov edx,4
0049A935   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A938 <>|.  E8 E396F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A93D   |.  8B85 44FFFFFF   mov eax,dword ptr ss:[ebp-BC]
0049A943 <>|.  E8 58E6F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A948   |.  0FAFD8          imul ebx,eax
0049A94B   |.  8BC3            mov eax,ebx
0049A94D   |.  83C0 0B         add eax,0B
0049A950   |.  B9 0A000000     mov ecx,0A
0049A955   |.  99              cdq
0049A956   |.  F7F9            idiv ecx
0049A958   |.  8BC2            mov eax,edx
0049A95A   |.  8D95 4CFFFFFF   lea edx,dword ptr ss:[ebp-B4]
0049A960 <>|.  E8 0BE6F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A965   |.  8B95 4CFFFFFF   mov edx,dword ptr ss:[ebp-B4]
0049A96B   |.  8D45 C0         lea eax,dword ptr ss:[ebp-40]
0049A96E <>|.  E8 BD92F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A973   |.  8D85 3CFFFFFF   lea eax,dword ptr ss:[ebp-C4]
0049A979   |.  50              push eax
0049A97A   |.  B9 01000000     mov ecx,1
0049A97F   |.  BA 05000000     mov edx,5
0049A984   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A987 <>|.  E8 9496F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A98C   |.  8B85 3CFFFFFF   mov eax,dword ptr ss:[ebp-C4]
0049A992 <>|.  E8 09E6F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A997   |.  8BD8            mov ebx,eax
0049A999   |.  8D85 38FFFFFF   lea eax,dword ptr ss:[ebp-C8]
0049A99F   |.  50              push eax
0049A9A0   |.  B9 01000000     mov ecx,1
0049A9A5   |.  BA 05000000     mov edx,5
0049A9AA   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A9AD <>|.  E8 6E96F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A9B2   |.  8B85 38FFFFFF   mov eax,dword ptr ss:[ebp-C8]
0049A9B8 <>|.  E8 E3E5F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A9BD   |.  0FAFD8          imul ebx,eax
0049A9C0   |.  8BC3            mov eax,ebx
0049A9C2   |.  83C0 03         add eax,3
0049A9C5   |.  B9 0A000000     mov ecx,0A
0049A9CA   |.  99              cdq
0049A9CB   |.  F7F9            idiv ecx
0049A9CD   |.  8BC2            mov eax,edx
0049A9CF   |.  8D95 40FFFFFF   lea edx,dword ptr ss:[ebp-C0]
0049A9D5 <>|.  E8 96E5F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A9DA   |.  8B95 40FFFFFF   mov edx,dword ptr ss:[ebp-C0]
0049A9E0   |.  8D45 C4         lea eax,dword ptr ss:[ebp-3C]
0049A9E3 <>|.  E8 4892F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A9E8   |.  8D85 30FFFFFF   lea eax,dword ptr ss:[ebp-D0]
0049A9EE   |.  50              push eax
0049A9EF   |.  B9 01000000     mov ecx,1
0049A9F4   |.  BA 06000000     mov edx,6
0049A9F9   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A9FC <>|.  E8 1F96F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AA01   |.  8B85 30FFFFFF   mov eax,dword ptr ss:[ebp-D0]
0049AA07 <>|.  E8 94E5F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AA0C   |.  8BD8            mov ebx,eax
0049AA0E   |.  8D85 2CFFFFFF   lea eax,dword ptr ss:[ebp-D4]
0049AA14   |.  50              push eax
0049AA15   |.  B9 01000000     mov ecx,1
0049AA1A   |.  BA 06000000     mov edx,6
0049AA1F   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AA22 <>|.  E8 F995F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AA27   |.  8B85 2CFFFFFF   mov eax,dword ptr ss:[ebp-D4]
0049AA2D <>|.  E8 6EE5F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AA32   |.  0FAFD8          imul ebx,eax
0049AA35   |.  8BC3            mov eax,ebx
0049AA37   |.  83C0 05         add eax,5
0049AA3A   |.  B9 0A000000     mov ecx,0A
0049AA3F   |.  99              cdq
0049AA40   |.  F7F9            idiv ecx
0049AA42   |.  8BC2            mov eax,edx
0049AA44   |.  8D95 34FFFFFF   lea edx,dword ptr ss:[ebp-CC]
0049AA4A <>|.  E8 21E5F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AA4F   |.  8B95 34FFFFFF   mov edx,dword ptr ss:[ebp-CC]
0049AA55   |.  8D45 C8         lea eax,dword ptr ss:[ebp-38]
0049AA58 <>|.  E8 D391F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AA5D   |.  8D85 24FFFFFF   lea eax,dword ptr ss:[ebp-DC]
0049AA63   |.  50              push eax
0049AA64   |.  B9 01000000     mov ecx,1
0049AA69   |.  BA 07000000     mov edx,7
0049AA6E   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AA71 <>|.  E8 AA95F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AA76   |.  8B85 24FFFFFF   mov eax,dword ptr ss:[ebp-DC]
0049AA7C <>|.  E8 1FE5F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AA81   |.  8BD8            mov ebx,eax
0049AA83   |.  8D85 20FFFFFF   lea eax,dword ptr ss:[ebp-E0]
0049AA89   |.  50              push eax
0049AA8A   |.  B9 01000000     mov ecx,1
0049AA8F   |.  BA 07000000     mov edx,7
0049AA94   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AA97 <>|.  E8 8495F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AA9C   |.  8B85 20FFFFFF   mov eax,dword ptr ss:[ebp-E0]
0049AAA2 <>|.  E8 F9E4F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AAA7   |.  0FAFD8          imul ebx,eax
0049AAAA   |.  8BC3            mov eax,ebx
0049AAAC   |.  40              inc eax
0049AAAD   |.  B9 0A000000     mov ecx,0A
0049AAB2   |.  99              cdq
0049AAB3   |.  F7F9            idiv ecx
0049AAB5   |.  8BC2            mov eax,edx
0049AAB7   |.  8D95 28FFFFFF   lea edx,dword ptr ss:[ebp-D8]
0049AABD <>|.  E8 AEE4F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AAC2   |.  8B95 28FFFFFF   mov edx,dword ptr ss:[ebp-D8]
0049AAC8   |.  8D45 CC         lea eax,dword ptr ss:[ebp-34]
0049AACB <>|.  E8 6091F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AAD0   |.  8D85 18FFFFFF   lea eax,dword ptr ss:[ebp-E8]
0049AAD6   |.  50              push eax
0049AAD7   |.  B9 01000000     mov ecx,1
0049AADC   |.  BA 08000000     mov edx,8
0049AAE1   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AAE4 <>|.  E8 3795F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AAE9   |.  8B85 18FFFFFF   mov eax,dword ptr ss:[ebp-E8]
0049AAEF <>|.  E8 ACE4F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AAF4   |.  8BD8            mov ebx,eax
0049AAF6   |.  8D85 14FFFFFF   lea eax,dword ptr ss:[ebp-EC]
0049AAFC   |.  50              push eax
0049AAFD   |.  B9 01000000     mov ecx,1
0049AB02   |.  BA 08000000     mov edx,8
0049AB07   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AB0A <>|.  E8 1195F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AB0F   |.  8B85 14FFFFFF   mov eax,dword ptr ss:[ebp-EC]
0049AB15 <>|.  E8 86E4F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AB1A   |.  0FAFD8          imul ebx,eax
0049AB1D   |.  8BC3            mov eax,ebx
0049AB1F   |.  83C0 0D         add eax,0D
0049AB22   |.  B9 0A000000     mov ecx,0A
0049AB27   |.  99              cdq
0049AB28   |.  F7F9            idiv ecx
0049AB2A   |.  8BC2            mov eax,edx
0049AB2C   |.  8D95 1CFFFFFF   lea edx,dword ptr ss:[ebp-E4]
0049AB32 <>|.  E8 39E4F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AB37   |.  8B95 1CFFFFFF   mov edx,dword ptr ss:[ebp-E4]
0049AB3D   |.  8D45 D0         lea eax,dword ptr ss:[ebp-30]
0049AB40 <>|.  E8 EB90F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AB45   |.  8D85 0CFFFFFF   lea eax,dword ptr ss:[ebp-F4]
0049AB4B   |.  50              push eax
0049AB4C   |.  B9 01000000     mov ecx,1
0049AB51   |.  BA 09000000     mov edx,9
0049AB56   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AB59 <>|.  E8 C294F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AB5E   |.  8B85 0CFFFFFF   mov eax,dword ptr ss:[ebp-F4]
0049AB64 <>|.  E8 37E4F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AB69   |.  8BD8            mov ebx,eax
0049AB6B   |.  8D85 08FFFFFF   lea eax,dword ptr ss:[ebp-F8]
0049AB71   |.  50              push eax
0049AB72   |.  B9 01000000     mov ecx,1
0049AB77   |.  BA 09000000     mov edx,9
0049AB7C   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AB7F <>|.  E8 9C94F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AB84   |.  8B85 08FFFFFF   mov eax,dword ptr ss:[ebp-F8]
0049AB8A <>|.  E8 11E4F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AB8F   |.  0FAFD8          imul ebx,eax
0049AB92   |.  8BC3            mov eax,ebx
0049AB94   |.  83C0 02         add eax,2
0049AB97   |.  B9 0A000000     mov ecx,0A
0049AB9C   |.  99              cdq
0049AB9D   |.  F7F9            idiv ecx
0049AB9F   |.  8BC2            mov eax,edx
0049ABA1   |.  8D95 10FFFFFF   lea edx,dword ptr ss:[ebp-F0]
0049ABA7 <>|.  E8 C4E3F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049ABAC   |.  8B95 10FFFFFF   mov edx,dword ptr ss:[ebp-F0]
0049ABB2   |.  8D45 D4         lea eax,dword ptr ss:[ebp-2C]
0049ABB5 <>|.  E8 7690F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049ABBA   |.  8D85 00FFFFFF   lea eax,dword ptr ss:[ebp-100]
0049ABC0   |.  50              push eax
0049ABC1   |.  B9 01000000     mov ecx,1
0049ABC6   |.  BA 0A000000     mov edx,0A
0049ABCB   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ABCE <>|.  E8 4D94F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ABD3   |.  8B85 00FFFFFF   mov eax,dword ptr ss:[ebp-100]
0049ABD9 <>|.  E8 C2E3F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049ABDE   |.  8BD8            mov ebx,eax
0049ABE0   |.  8D85 FCFEFFFF   lea eax,dword ptr ss:[ebp-104]
0049ABE6   |.  50              push eax
0049ABE7   |.  B9 01000000     mov ecx,1
0049ABEC   |.  BA 0A000000     mov edx,0A
0049ABF1   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ABF4 <>|.  E8 2794F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ABF9   |.  8B85 FCFEFFFF   mov eax,dword ptr ss:[ebp-104]
0049ABFF <>|.  E8 9CE3F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AC04   |.  0FAFD8          imul ebx,eax
0049AC07   |.  8BC3            mov eax,ebx
0049AC09   |.  83C0 0E         add eax,0E
0049AC0C   |.  B9 0A000000     mov ecx,0A
0049AC11   |.  99              cdq
0049AC12   |.  F7F9            idiv ecx
0049AC14   |.  8BC2            mov eax,edx
0049AC16   |.  8D95 04FFFFFF   lea edx,dword ptr ss:[ebp-FC]
0049AC1C <>|.  E8 4FE3F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AC21   |.  8B95 04FFFFFF   mov edx,dword ptr ss:[ebp-FC]
0049AC27   |.  8D45 D8         lea eax,dword ptr ss:[ebp-28]
0049AC2A <>|.  E8 0190F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AC2F   |.  8D85 F4FEFFFF   lea eax,dword ptr ss:[ebp-10C]
0049AC35   |.  50              push eax
0049AC36   |.  B9 01000000     mov ecx,1
0049AC3B   |.  BA 0B000000     mov edx,0B
0049AC40   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AC43 <>|.  E8 D893F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AC48   |.  8B85 F4FEFFFF   mov eax,dword ptr ss:[ebp-10C]
0049AC4E <>|.  E8 4DE3F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AC53   |.  8BD8            mov ebx,eax
0049AC55   |.  8D85 F0FEFFFF   lea eax,dword ptr ss:[ebp-110]
0049AC5B   |.  50              push eax
0049AC5C   |.  B9 01000000     mov ecx,1
0049AC61   |.  BA 0B000000     mov edx,0B
0049AC66   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AC69 <>|.  E8 B293F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AC6E   |.  8B85 F0FEFFFF   mov eax,dword ptr ss:[ebp-110]
0049AC74 <>|.  E8 27E3F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AC79   |.  0FAFD8          imul ebx,eax
0049AC7C   |.  8BC3            mov eax,ebx
0049AC7E   |.  83C0 09         add eax,9
0049AC81   |.  B9 0A000000     mov ecx,0A
0049AC86   |.  99              cdq
0049AC87   |.  F7F9            idiv ecx
0049AC89   |.  8BC2            mov eax,edx
0049AC8B   |.  8D95 F8FEFFFF   lea edx,dword ptr ss:[ebp-108]
0049AC91 <>|.  E8 DAE2F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AC96   |.  8B95 F8FEFFFF   mov edx,dword ptr ss:[ebp-108]
0049AC9C   |.  8D45 DC         lea eax,dword ptr ss:[ebp-24]
0049AC9F <>|.  E8 8C8FF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049ACA4   |.  8D85 E8FEFFFF   lea eax,dword ptr ss:[ebp-118]
0049ACAA   |.  50              push eax
0049ACAB   |.  B9 01000000     mov ecx,1
0049ACB0   |.  BA 0C000000     mov edx,0C
0049ACB5   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ACB8 <>|.  E8 6393F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ACBD   |.  8B85 E8FEFFFF   mov eax,dword ptr ss:[ebp-118]
0049ACC3 <>|.  E8 D8E2F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049ACC8   |.  8BD8            mov ebx,eax
0049ACCA   |.  8D85 E4FEFFFF   lea eax,dword ptr ss:[ebp-11C]
0049ACD0   |.  50              push eax
0049ACD1   |.  B9 01000000     mov ecx,1
0049ACD6   |.  BA 0C000000     mov edx,0C
0049ACDB   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ACDE <>|.  E8 3D93F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ACE3   |.  8B85 E4FEFFFF   mov eax,dword ptr ss:[ebp-11C]
0049ACE9 <>|.  E8 B2E2F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049ACEE   |.  0FAFD8          imul ebx,eax
0049ACF1   |.  8BC3            mov eax,ebx
0049ACF3   |.  83C0 06         add eax,6
0049ACF6   |.  B9 0A000000     mov ecx,0A
0049ACFB   |.  99              cdq
0049ACFC   |.  F7F9            idiv ecx
0049ACFE   |.  8BC2            mov eax,edx
0049AD00   |.  8D95 ECFEFFFF   lea edx,dword ptr ss:[ebp-114]
0049AD06 <>|.  E8 65E2F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AD0B   |.  8B95 ECFEFFFF   mov edx,dword ptr ss:[ebp-114]
0049AD11   |.  8D45 E0         lea eax,dword ptr ss:[ebp-20]
0049AD14 <>|.  E8 178FF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AD19   |.  8D85 DCFEFFFF   lea eax,dword ptr ss:[ebp-124]
0049AD1F   |.  50              push eax
0049AD20   |.  B9 01000000     mov ecx,1
0049AD25   |.  BA 0D000000     mov edx,0D
0049AD2A   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AD2D <>|.  E8 EE92F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AD32   |.  8B85 DCFEFFFF   mov eax,dword ptr ss:[ebp-124]
0049AD38 <>|.  E8 63E2F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AD3D   |.  8BD8            mov ebx,eax
0049AD3F   |.  8D85 D8FEFFFF   lea eax,dword ptr ss:[ebp-128]
0049AD45   |.  50              push eax
0049AD46   |.  B9 01000000     mov ecx,1
0049AD4B   |.  BA 0D000000     mov edx,0D
0049AD50   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AD53 <>|.  E8 C892F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AD58   |.  8B85 D8FEFFFF   mov eax,dword ptr ss:[ebp-128]
0049AD5E <>|.  E8 3DE2F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AD63   |.  0FAFD8          imul ebx,eax
0049AD66   |.  8BC3            mov eax,ebx
0049AD68   |.  83C0 0F         add eax,0F
0049AD6B   |.  B9 0A000000     mov ecx,0A
0049AD70   |.  99              cdq
0049AD71   |.  F7F9            idiv ecx
0049AD73   |.  8BC2            mov eax,edx
0049AD75   |.  8D95 E0FEFFFF   lea edx,dword ptr ss:[ebp-120]
0049AD7B <>|.  E8 F0E1F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AD80   |.  8B95 E0FEFFFF   mov edx,dword ptr ss:[ebp-120]
0049AD86   |.  8D45 E4         lea eax,dword ptr ss:[ebp-1C]
0049AD89 <>|.  E8 A28EF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AD8E   |.  8D85 D0FEFFFF   lea eax,dword ptr ss:[ebp-130]
0049AD94   |.  50              push eax
0049AD95   |.  B9 01000000     mov ecx,1
0049AD9A   |.  BA 0E000000     mov edx,0E
0049AD9F   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ADA2 <>|.  E8 7992F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ADA7   |.  8B85 D0FEFFFF   mov eax,dword ptr ss:[ebp-130]
0049ADAD <>|.  E8 EEE1F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049ADB2   |.  8BD8            mov ebx,eax
0049ADB4   |.  8D85 CCFEFFFF   lea eax,dword ptr ss:[ebp-134]
0049ADBA   |.  50              push eax
0049ADBB   |.  B9 01000000     mov ecx,1
0049ADC0   |.  BA 0E000000     mov edx,0E
0049ADC5   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049ADC8 <>|.  E8 5392F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049ADCD   |.  8B85 CCFEFFFF   mov eax,dword ptr ss:[ebp-134]
0049ADD3 <>|.  E8 C8E1F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049ADD8   |.  0FAFD8          imul ebx,eax
0049ADDB   |.  8BC3            mov eax,ebx
0049ADDD   |.  83C0 10         add eax,10
0049ADE0   |.  B9 0A000000     mov ecx,0A
0049ADE5   |.  99              cdq
0049ADE6   |.  F7F9            idiv ecx
0049ADE8   |.  8BC2            mov eax,edx
0049ADEA   |.  8D95 D4FEFFFF   lea edx,dword ptr ss:[ebp-12C]
0049ADF0 <>|.  E8 7BE1F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049ADF5   |.  8B95 D4FEFFFF   mov edx,dword ptr ss:[ebp-12C]
0049ADFB   |.  8D45 E8         lea eax,dword ptr ss:[ebp-18]
0049ADFE <>|.  E8 2D8EF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AE03   |.  8D85 C4FEFFFF   lea eax,dword ptr ss:[ebp-13C]
0049AE09   |.  50              push eax
0049AE0A   |.  B9 01000000     mov ecx,1
0049AE0F   |.  BA 0F000000     mov edx,0F
0049AE14   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AE17 <>|.  E8 0492F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AE1C   |.  8B85 C4FEFFFF   mov eax,dword ptr ss:[ebp-13C]
0049AE22 <>|.  E8 79E1F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AE27   |.  8BD8            mov ebx,eax
0049AE29   |.  8D85 C0FEFFFF   lea eax,dword ptr ss:[ebp-140]
0049AE2F   |.  50              push eax
0049AE30   |.  B9 01000000     mov ecx,1
0049AE35   |.  BA 0F000000     mov edx,0F
0049AE3A   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AE3D <>|.  E8 DE91F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AE42   |.  8B85 C0FEFFFF   mov eax,dword ptr ss:[ebp-140]
0049AE48 <>|.  E8 53E1F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AE4D   |.  0FAFD8          imul ebx,eax
0049AE50   |.  8BC3            mov eax,ebx
0049AE52   |.  83C0 07         add eax,7
0049AE55   |.  B9 0A000000     mov ecx,0A
0049AE5A   |.  99              cdq
0049AE5B   |.  F7F9            idiv ecx
0049AE5D   |.  8BC2            mov eax,edx
0049AE5F   |.  8D95 C8FEFFFF   lea edx,dword ptr ss:[ebp-138]
0049AE65 <>|.  E8 06E1F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AE6A   |.  8B95 C8FEFFFF   mov edx,dword ptr ss:[ebp-138]
0049AE70   |.  8D45 EC         lea eax,dword ptr ss:[ebp-14]
0049AE73 <>|.  E8 B88DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AE78   |.  8D85 B8FEFFFF   lea eax,dword ptr ss:[ebp-148]
0049AE7E   |.  50              push eax
0049AE7F   |.  B9 01000000     mov ecx,1
0049AE84   |.  BA 10000000     mov edx,10
0049AE89   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AE8C <>|.  E8 8F91F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AE91   |.  8B85 B8FEFFFF   mov eax,dword ptr ss:[ebp-148]
0049AE97 <>|.  E8 04E1F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AE9C   |.  8BD8            mov ebx,eax
0049AE9E   |.  8D85 B4FEFFFF   lea eax,dword ptr ss:[ebp-14C]
0049AEA4   |.  50              push eax
0049AEA5   |.  B9 01000000     mov ecx,1
0049AEAA   |.  BA 10000000     mov edx,10
0049AEAF   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049AEB2 <>|.  E8 6991F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049AEB7   |.  8B85 B4FEFFFF   mov eax,dword ptr ss:[ebp-14C]
0049AEBD <>|.  E8 DEE0F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049AEC2   |.  0FAFD8          imul ebx,eax
0049AEC5   |.  8BC3            mov eax,ebx
0049AEC7   |.  83C0 08         add eax,8
0049AECA   |.  B9 0A000000     mov ecx,0A
0049AECF   |.  99              cdq
0049AED0   |.  F7F9            idiv ecx
0049AED2   |.  8BC2            mov eax,edx
0049AED4   |.  8D95 BCFEFFFF   lea edx,dword ptr ss:[ebp-144]
0049AEDA <>|.  E8 91E0F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049AEDF   |.  8B95 BCFEFFFF   mov edx,dword ptr ss:[ebp-144]
0049AEE5   |.  8D45 F0         lea eax,dword ptr ss:[ebp-10]
0049AEE8 <>|.  E8 438DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AEED   |.  8D85 74FFFFFF   lea eax,dword ptr ss:[ebp-8C]
0049AEF3   |.  8B55 B4         mov edx,dword ptr ss:[ebp-4C]
0049AEF6 <>|.  E8 358DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AEFB   |.  8D85 78FFFFFF   lea eax,dword ptr ss:[ebp-88]
0049AF01   |.  8B55 C4         mov edx,dword ptr ss:[ebp-3C]
0049AF04 <>|.  E8 278DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF09   |.  8D85 7CFFFFFF   lea eax,dword ptr ss:[ebp-84]
0049AF0F   |.  8B55 E0         mov edx,dword ptr ss:[ebp-20]
0049AF12 <>|.  E8 198DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF17   |.  8D45 80         lea eax,dword ptr ss:[ebp-80]
0049AF1A   |.  8B55 DC         mov edx,dword ptr ss:[ebp-24]
0049AF1D <>|.  E8 0E8DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF22   |.  8D45 84         lea eax,dword ptr ss:[ebp-7C]
0049AF25   |.  8B55 B8         mov edx,dword ptr ss:[ebp-48]
0049AF28 <>|.  E8 038DF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF2D   |.  8D45 88         lea eax,dword ptr ss:[ebp-78]
0049AF30   |.  8B55 C0         mov edx,dword ptr ss:[ebp-40]
0049AF33 <>|.  E8 F88CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF38   |.  8D45 8C         lea eax,dword ptr ss:[ebp-74]
0049AF3B   |.  8B55 D8         mov edx,dword ptr ss:[ebp-28]
0049AF3E <>|.  E8 ED8CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF43   |.  8D45 90         lea eax,dword ptr ss:[ebp-70]
0049AF46   |.  8B55 BC         mov edx,dword ptr ss:[ebp-44]
0049AF49 <>|.  E8 E28CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF4E   |.  8D45 94         lea eax,dword ptr ss:[ebp-6C]
0049AF51   |.  8B55 E4         mov edx,dword ptr ss:[ebp-1C]
0049AF54 <>|.  E8 D78CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF59   |.  8D45 98         lea eax,dword ptr ss:[ebp-68]
0049AF5C   |.  8B55 D0         mov edx,dword ptr ss:[ebp-30]
0049AF5F <>|.  E8 CC8CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF64   |.  8D45 9C         lea eax,dword ptr ss:[ebp-64]
0049AF67   |.  8B55 CC         mov edx,dword ptr ss:[ebp-34]
0049AF6A <>|.  E8 C18CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF6F   |.  8D45 A0         lea eax,dword ptr ss:[ebp-60]
0049AF72   |.  8B55 D4         mov edx,dword ptr ss:[ebp-2C]
0049AF75 <>|.  E8 B68CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF7A   |.  8D45 A4         lea eax,dword ptr ss:[ebp-5C]
0049AF7D   |.  8B55 E8         mov edx,dword ptr ss:[ebp-18]
0049AF80 <>|.  E8 AB8CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF85   |.  8D45 A8         lea eax,dword ptr ss:[ebp-58]
0049AF88   |.  8B55 EC         mov edx,dword ptr ss:[ebp-14]
0049AF8B <>|.  E8 A08CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF90   |.  8D45 AC         lea eax,dword ptr ss:[ebp-54]
0049AF93   |.  8B55 F0         mov edx,dword ptr ss:[ebp-10]
0049AF96 <>|.  E8 958CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AF9B   |.  8D45 B0         lea eax,dword ptr ss:[ebp-50]
0049AF9E   |.  8B55 C8         mov edx,dword ptr ss:[ebp-38]
0049AFA1 <>|.  E8 8A8CF6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049AFA6   |.  8D45 FC         lea eax,dword ptr ss:[ebp-4]
0049AFA9 <>|.  E8 EA8BF6FF     call JDCKS.00403B98                  ;  ->system.@LStrClr(String;String);
0049AFAE   |.  BE 10000000     mov esi,10
0049AFB3   |.  8D9D 74FFFFFF   lea ebx,dword ptr ss:[ebp-8C]
0049AFB9   |>  8D45 FC         /lea eax,dword ptr ss:[ebp-4]
0049AFBC   |.  8B13            |mov edx,dword ptr ds:[ebx]
0049AFBE <>|.  E8 5D8EF6FF     |call JDCKS.00403E20                 ;  ->system.@LStrCat;
0049AFC3   |.  83C3 04         |add ebx,4
0049AFC6   |.  4E              |dec esi
0049AFC7   |.^ 75 F0           \jnz short JDCKS.0049AFB9
0049AFC9   |.  8B45 FC         mov eax,dword ptr ss:[ebp-4]         ;  注册码,可以做内存注册机
0049AFCC   |.  8B55 F4         mov edx,dword ptr ss:[ebp-C]
0049AFCF <>|.  E8 548FF6FF     call JDCKS.00403F28                  ;  ->system.@LStrCmp;
0049AFD4   |.  75 04           jnz short JDCKS.0049AFDA
0049AFD6   |.  33DB            xor ebx,ebx
0049AFD8   |.  EB 05           jmp short JDCKS.0049AFDF
0049AFDA   |>  BB 02000000     mov ebx,2
0049AFDF   |>  33C0            xor eax,eax
0049AFE1   |.  5A              pop edx
0049AFE2   |.  59              pop ecx
0049AFE3   |.  59              pop ecx
0049AFE4   |.  64:8910         mov dword ptr fs:[eax],edx
0049AFE7   |.  68 27B04900     push JDCKS.0049B027
0049AFEC   |>  8D85 B4FEFFFF   lea eax,dword ptr ss:[ebp-14C]
0049AFF2   |.  BA 30000000     mov edx,30
0049AFF7 <>|.  E8 C08BF6FF     call JDCKS.00403BBC                  ;  ->system.@LStrArrayClr;
0049AFFC   |.  8D85 74FFFFFF   lea eax,dword ptr ss:[ebp-8C]
0049B002   |.  B9 20000000     mov ecx,20
0049B007   |.  8B15 D0104000   mov edx,dword ptr ds:[4010D0]        ;  JDCKS.004010D4
0049B00D <>|.  E8 7A94F6FF     call JDCKS.0040448C                  ;  ->system.@FinalizeArray;
0049B012   |.  8D45 F4         lea eax,dword ptr ss:[ebp-C]
0049B015   |.  BA 03000000     mov edx,3
0049B01A <>|.  E8 9D8BF6FF     call JDCKS.00403BBC                  ;  ->system.@LStrArrayClr;
0049B01F   \.  C3              retn


———————————————————————————————————————————

【Crack总结】:

作者的算法很简单,希望大家不要笑啊,有插件自动生成的注释,看起来更容易。
贴出注册机delphi源码:

Function GenKey(No: String): String;
Const
  Num: Array[0..9] Of Char = '0123456789';
Begin
  SetLength(Result, 16);
  Result[1] := Num[(StrToInt(No[1]) * StrToInt(No[1]) + 12) Mod 10];
  Result[5] := Num[(StrToInt(No[2]) * StrToInt(No[2]) + 10) Mod 10];
  Result[8] := Num[(StrToInt(No[3]) * StrToInt(No[3]) + 4) Mod 10];
  Result[6] := Num[(StrToInt(No[4]) * StrToInt(No[4]) + 11) Mod 10];
  Result[2] := Num[(StrToInt(No[5]) * StrToInt(No[5]) + 3) Mod 10];
  Result[16] := Num[(StrToInt(No[6]) * StrToInt(No[6]) + 5) Mod 10];
  Result[11] := Num[(StrToInt(No[7]) * StrToInt(No[7]) + 1) Mod 10];
  Result[10] := Num[(StrToInt(No[8]) * StrToInt(No[8]) + 13) Mod 10];
  Result[12] := Num[(StrToInt(No[9]) * StrToInt(No[9]) + 2) Mod 10];
  Result[7] := Num[(StrToInt(No[10]) * StrToInt(No[10]) + 14) Mod 10];
  Result[4] := Num[(StrToInt(No[11]) * StrToInt(No[11]) + 9) Mod 10];
  Result[3] := Num[(StrToInt(No[12]) * StrToInt(No[12]) + 6) Mod 10];
  Result[9] := Num[(StrToInt(No[13]) * StrToInt(No[13]) + 15) Mod 10];
  Result[13] := Num[(StrToInt(No[14]) * StrToInt(No[14]) + 16) Mod 10];
  Result[14] := Num[(StrToInt(No[15]) * StrToInt(No[15]) + 7) Mod 10];
  Result[15] := Num[(StrToInt(No[16]) * StrToInt(No[16]) + 8) Mod 10];
End;


内存注册机:
中断地址:0049AFC9
中断次数:1
第一字节:8B
指令长度:3
注册码: 内存方式 寄存器 EAX

相信大家很容易看懂,16位纯数字机器码分别运算的计算结果,再调整输出顺序即为注册码。

大家可以验证一下:
机器码:1234567890123456
注册码:3800474347032241

初次写破文,请大侠勿见笑。

  • 标 题: 答复
  • 作 者:baby2008
  • 时 间:2005-03-06 11:17

引用:
最初由 萝卜 发布
注释的太少了,看不懂。 



0049A7A6   |.  B9 01000000     mov ecx,1                            ;1
0049A7AB   |.  BA 01000000     mov edx,1                            ;1
0049A7B0   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]         ;  机器码
0049A7B3 <>|.  E8 6898F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy; 函数LstrCopy(机器码,edx,eax)字符串取一位
0049A7B8   |.  8B85 6CFFFFFF   mov eax,dword ptr ss:[ebp-94]        ;  Ascii
0049A7BE <>|.  E8 DDE7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A7C3   |.  8BD8            mov ebx,eax
0049A7C5   |.  8D85 68FFFFFF   lea eax,dword ptr ss:[ebp-98]
0049A7CB   |.  50              push eax
0049A7CC   |.  B9 01000000     mov ecx,1
0049A7D1   |.  BA 01000000     mov edx,1
0049A7D6   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]         ;机器码
0049A7D9 <>|.  E8 4298F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;  函数LstrCopy(机器码,1,1)字符串取一位
0049A7DE   |.  8B85 68FFFFFF   mov eax,dword ptr ss:[ebp-98]
0049A7E4 <>|.  E8 B7E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0 转为数值strToint()
0049A7E9   |.  0FAFD8          imul ebx,eax                         ;第一位数字×第一位数字
0049A7EC   |.  8BC3            mov eax,ebx
0049A7EE   |.  83C0 0C         add eax,0C                           ;乘积+12
0049A7F1   |.  B9 0A000000     mov ecx,0A                           ;10
0049A7F6   |.  99              cdq
0049A7F7   |.  F7F9            idiv ecx
0049A7F9   |.  8BC2            mov eax,edx                          ;eax:=(第一位数字×第一位数字+12) mod 10
0049A7FB   |.  8D95 70FFFFFF   lea edx,dword ptr ss:[ebp-90]
0049A801 <>|.  E8 6AE7F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A806   |.  8B95 70FFFFFF   mov edx,dword ptr ss:[ebp-90]        ;堆栈保存第一位计算结果


0049A80C   |.  8D45 B4         lea eax,dword ptr ss:[ebp-4C]
0049A80F <>|.  E8 1C94F6FF     call JDCKS.00403C30                  ;  ->system.@LStrLAsg;
0049A814   |.  8D85 60FFFFFF   lea eax,dword ptr ss:[ebp-A0]
0049A81A   |.  50              push eax
0049A81B   |.  B9 01000000     mov ecx,1
0049A820   |.  BA 02000000     mov edx,2                            ;取第2位,过程同上
0049A825   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A828 <>|.  E8 F397F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A82D   |.  8B85 60FFFFFF   mov eax,dword ptr ss:[ebp-A0]
0049A833 <>|.  E8 68E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A838   |.  8BD8            mov ebx,eax
0049A83A   |.  8D85 5CFFFFFF   lea eax,dword ptr ss:[ebp-A4]
0049A840   |.  50              push eax
0049A841   |.  B9 01000000     mov ecx,1
0049A846   |.  BA 02000000     mov edx,2
0049A84B   |.  8B45 F8         mov eax,dword ptr ss:[ebp-8]
0049A84E <>|.  E8 CD97F6FF     call JDCKS.00404020                  ;  ->system.@LStrCopy;
0049A853   |.  8B85 5CFFFFFF   mov eax,dword ptr ss:[ebp-A4]
0049A859 <>|.  E8 42E7F6FF     call JDCKS.00408FA0                  ;  ->Unit_00407E74.Proc_00408FA0
0049A85E   |.  0FAFD8          imul ebx,eax
0049A861   |.  8BC3            mov eax,ebx
0049A863   |.  83C0 0A         add eax,0A                           ;乘积+10
0049A866   |.  B9 0A000000     mov ecx,0A
0049A86B   |.  99              cdq
0049A86C   |.  F7F9            idiv ecx
0049A86E   |.  8BC2            mov eax,edx                          ;eax:=(第2位数字×第2位数字+10) mod 10
0049A870   |.  8D95 64FFFFFF   lea edx,dword ptr ss:[ebp-9C]
0049A876 <>|.  E8 F5E6F6FF     call JDCKS.00408F70                  ;  ->Unit_00407E74.Proc_00408F70
0049A87B   |.  8B95 64FFFFFF   mov edx,dword ptr ss:[ebp-9C] ;堆栈保存第2位计算结果

下面的相同,只是加的数值不一样吧了,为什么要调整输出次序,你自己看看堆栈地址吧。

  • 标 题: 答复
  • 作 者:china
  • 时 间:2005-03-06 14:56

Delphi注册机源码,利用baby2008的成果,嘿嘿,感谢先。
procedure TForm1.Button1Click(Sender: TObject);
Function GenKey(No: String): String;
Const
  Num: Array[0..9] Of Char = '0123456789';
Begin
  SetLength(Result, 16);
  Result[3] := Num[(StrToInt(No[1]) * StrToInt(No[1]) + 9) Mod 10];
  Result[7] := Num[(StrToInt(No[2]) * StrToInt(No[2]) + 3) Mod 10];
  Result[6] := Num[(StrToInt(No[3]) * StrToInt(No[3]) + 10) Mod 10];
  Result[10] := Num[(StrToInt(No[4]) * StrToInt(No[4]) + 1) Mod 10];
  Result[16] := Num[(StrToInt(No[5]) * StrToInt(No[5]) + 11) Mod 10];
  Result[13] := Num[(StrToInt(No[6]) * StrToInt(No[6]) + 4) Mod 10];
  Result[12] := Num[(StrToInt(No[7]) * StrToInt(No[7]) + 8) Mod 10];
  Result[9] := Num[(StrToInt(No[8]) * StrToInt(No[8]) + 2) Mod 10];
  Result[5] := Num[(StrToInt(No[9]) * StrToInt(No[9]) + 15) Mod 10];
  Result[2] := Num[(StrToInt(No[10]) * StrToInt(No[10]) + 7) Mod 10];
  Result[4] := Num[(StrToInt(No[11]) * StrToInt(No[11]) + 16) Mod 10];
  Result[11] := Num[(StrToInt(No[12]) * StrToInt(No[12]) + 12) Mod 10];
  Result[14] := Num[(StrToInt(No[13]) * StrToInt(No[13]) + 5) Mod 10];
  Result[8] := Num[(StrToInt(No[14]) * StrToInt(No[14]) + 13) Mod 10];
  Result[1] := Num[(StrToInt(No[15]) * StrToInt(No[15]) + 14) Mod 10];
  Result[15] := Num[(StrToInt(No[16]) * StrToInt(No[16]) + 6) Mod 10];
End;

var
  No:String;
begin
  No:=Edit1.Text;
  No:=Genkey(No);
  Edit2.Text:=No;
end;

  • 标 题: 答复
  • 作 者:baby2008
  • 时 间:2005-03-06 15:24

写的比我还详细, 
有一点要说一下

var
  No:String;
begin
  No:=Edit1.Text;
  No:=Genkey(No);
  Edit2.Text:=No;
end;

忘了判断No的长度了吧?length(No)<>16 肯定出错。另外用一句话表示Edit2.Text:=Genkey(Edit1.Text);

个人习惯吧。