不脫衣突破同益起名大師3.33的啟動驗證段

看雪資料發表於2004-09-22

【下載頁面】http://www.92down.com/soft/7878.htm
【軟體名稱】同益起名大師 3.33  
【軟體分類】國產軟體 / 授權未知 / 測字算命  
【適用平臺】Win9x/Me/NT/2000/XP  
【檔案大小】6529KB 
【軟體介紹】是一個專業的起名測名軟體,可以說是最優秀、最專業的,絕對100%精品(注:自吹而已)。它有個人起名、公司行號命名、商標樓號命名、姓名八卦、吉號選擇、姓名分析、名稱分析、號碼吉凶分析等及參考名字查詢、成語查詢、偏旁查字等多種活字典辭典功能。是姓名學愛好者及研究人員的得力工具,讓您真正放心、方便、快捷地為您的公司商行或親朋好友起個好名。

――――――――――――――――――――――――――――――――― 

【破文作者】moon

【作者宣告】:只是感興趣,沒有其他目的。失誤之處敬請諸位大俠賜教!

【除錯環境】:WinXP、flyODBG、PEiD

――――――――――――――――――――――――――――――――― 
【準備工作】:

   手動更改登錄檔專案HKEY_LOCAL_MACHINE\SOFTWARE\GoodSoft\GoodName中的:

1. Appid改為註冊框中的申請碼,註冊按十進位制寫。
2. FName改為要起名的姓,如"朱"。
3. Serial改為一個32位的碼,如"12345678901234567890123456789012"。

    手動更改登錄檔專案HKEY_LOCAL_MACHINE\SOFTWARE\GoodSoft\GoodName\License中的:
1. RegMod改為fb。一個標誌。
2. RegSeq改為2。一個標誌。
3. Value改為"AC2A706C25768C57",這是與“朱”相對應的值。怎麼得到的?這是強暴了同益起名大師3.29版後,它幫我算出來的。

――――――――――――――――――――――――――――――――― 
【破解過程】:

    用peid查殼,是:

UltraProtect 1.x -> RISCO Software Inc.

    這就是ACProtect的殼。因為脫殼暫時沒有搞定,所以今採取帶殼跟蹤的方法。下:

bp RegQueryValueExA
bp RegSetValueExA

    這是它的穴位,可以攔截所有對登錄檔有關注冊資訊的讀寫操作,第一次讀取註冊資訊是啟動以後,在00576477開始的程式段上:

00576746  call GoodName.004F601C  關鍵比較
0057674B  mov byte ptr ds:[583F48],al  al要等於1才行

    是關鍵比較。在此中斷後,把al改為1即可突破啟動段的註冊驗證。相關操作已做成OD的指令碼檔案,載入後只需執行此檔案,即可突破其啟動的驗證段:

var addrQ

gpa "RegQueryValueExA", "advapi32.dll"
mov addrQ,$RESULT
bp addrQ
eob Break0
run

Break0:
cmp edx,0057695c
je lbl0
cmp eip,addrQ
jne end0:
run

lbl0:
cob
bc addrQ
bp 0057674B
run

bc 0057674B
inc eax  //用此命令把al置1
bp addrQ
run

end0:
run
ret
    當然這樣還不能使用這個軟體,在點選“註冊”、“個人起名”、“開始分析”等按鈕以後還有不同的驗證段,並且驗證段是有殼的,還有待於進一步的研究。

--------------------------------------------------------------------------

【附:啟動以後的驗證段】

00576477  mov edx,GoodName.0057695C        ; ASCII "Appid"
0057647C  mov eax,dword ptr ss:[ebp-14]
0057647F  call GoodName.0043D870
00576484  mov dword ptr ss:[ebp-8],eax
00576487  lea ecx,dword ptr ss:[ebp-C]
0057648A  mov edx,GoodName.0057696C        ; ASCII "Serial"
0057648F  mov eax,dword ptr ss:[ebp-14]
00576492  call GoodName.0043D7E4
00576497  lea ecx,dword ptr ss:[ebp-10]
0057649A  mov edx,GoodName.0057697C        ; ASCII "FName"
0057649F  mov eax,dword ptr ss:[ebp-14]
005764A2  call GoodName.0043D7E4
005764A7  lea edx,dword ptr ss:[ebp-18]
005764AA  mov eax,dword ptr ss:[ebp-10]
005764AD  call GoodName.00409070
005764B2  mov edx,dword ptr ss:[ebp-18]
005764B5  lea eax,dword ptr ss:[ebp-10]
005764B8  call GoodName.004047A8
005764BD  xor ecx,ecx
005764BF  mov edx,GoodName.0057698C        ; ASCII "License"
005764C4  mov eax,dword ptr ss:[ebp-14]
005764C7  call GoodName.0043D43C
005764CC  test al,al
005764CE  jnz short GoodName.005764E2
005764D0  xor eax,eax
005764D2  pop edx
005764D3  pop ecx
005764D4  pop ecx
005764D5  mov dword ptr fs:[eax],edx
005764D8  call GoodName.00404194
005764DD  jmp GoodName.005768A8
005764E2  mov edx,GoodName.0057699C        ; ASCII "RegSeq"
005764E7  mov eax,dword ptr ss:[ebp-14]
005764EA  call GoodName.0043D870
005764EF  mov word ptr ds:[583F4E],ax
005764F5  cmp word ptr ds:[583F4E],2
005764FD  jnz short GoodName.00576508
005764FF  mov byte ptr ds:[583F49],0
00576506  jmp short GoodName.0057650F
00576508  mov byte ptr ds:[583F49],1
0057650F  mov edx,GoodName.005769AC        ; ASCII "RegMod"
00576514  mov eax,dword ptr ss:[ebp-14]
00576517  call GoodName.0043D870
0057651C  mov word ptr ds:[583F4E],ax
00576522  lea edx,dword ptr ss:[ebp-1C]
00576525  mov eax,dword ptr ss:[ebp-10]
00576528  call GoodName.00409070
0057652D  mov eax,dword ptr ss:[ebp-1C]
00576530  call GoodName.004049D0
00576535  dec eax
00576536  jle short GoodName.00576577
00576538  lea ecx,dword ptr ss:[ebp-28]
0057653B  mov edx,GoodName.005769BC        ; ASCII "Value"
00576540  mov eax,dword ptr ss:[ebp-14]
00576543  call GoodName.0043D7E4
00576548  mov eax,dword ptr ss:[ebp-28]
0057654B  lea edx,dword ptr ss:[ebp-24]
0057654E  call GoodName.00409070
00576553  mov eax,dword ptr ss:[ebp-24]
00576556  lea ecx,dword ptr ss:[ebp-20]
00576559  mov edx,GoodName.005769CC        ; ASCII "CFE37613C6ACB1"
0057655E  call GoodName.004F53A4
00576563  mov edx,dword ptr ss:[ebp-20]
00576566  mov eax,dword ptr ss:[ebp-10]
00576569  call GoodName.00404B1C  登錄檔中的姓和根據Value算出的姓比較
0057656E  je short GoodName.00576577
00576570  mov dword ptr ss:[ebp-8],4D
00576577  lea ecx,dword ptr ss:[ebp-38]
0057657A  mov edx,GoodName.005769E4        ; ASCII "Value1"
0057657F  mov eax,dword ptr ss:[ebp-14]
00576582  call GoodName.0043D7E4
00576587  mov eax,dword ptr ss:[ebp-38]
0057658A  lea edx,dword ptr ss:[ebp-34]
0057658D  call GoodName.00409070
00576592  mov eax,dword ptr ss:[ebp-34]
00576595  lea ecx,dword ptr ss:[ebp-30]
00576598  mov edx,GoodName.005769CC        ; ASCII "CFE37613C6ACB1"
0057659D  call GoodName.004F53A4
005765A2  mov eax,dword ptr ss:[ebp-30]
005765A5  lea edx,dword ptr ss:[ebp-2C]
005765A8  call GoodName.00409070
005765AD  mov eax,dword ptr ss:[ebp-2C]
005765B0  push eax
005765B1  lea edx,dword ptr ss:[ebp-3C]
005765B4  mov eax,dword ptr ss:[ebp-10]
005765B7  call GoodName.00409070
005765BC  mov edx,dword ptr ss:[ebp-3C]
005765BF  lea eax,dword ptr ss:[ebp-10]
005765C2  pop ecx
005765C3  call GoodName.00404A1C
005765C8  xor eax,eax
005765CA  pop edx
005765CB  pop ecx
005765CC  pop ecx
005765CD  mov dword ptr fs:[eax],edx
005765D0  jmp short GoodName.005765E3
005765D2  jmp GoodName.00403D38
005765D7  xor eax,eax
005765D9  call GoodName.005192A4
005765DE  call GoodName.00404164
005765E3  cmp dword ptr ss:[ebp-8],4D
005765E7  jnz short GoodName.0057661C
005765E9  mov eax,dword ptr ss:[ebp-4]
005765EC  mov eax,dword ptr ds:[eax+340]
005765F2  xor edx,edx
005765F4  call GoodName.0046A608
005765F9  mov al,byte ptr ss:[ebp-8]
005765FC  call GoodName.005192A4
00576601  mov eax,dword ptr ss:[ebp-4]
00576604  mov eax,dword ptr ds:[eax+3B8]
0057660A  mov edx,dword ptr ss:[ebp-8]
0057660D  call GoodName.00521864
00576612  mov eax,dword ptr ds:[583F30]
00576617  call GoodName.00403884
0057661C  cmp word ptr ds:[583F4E],0FB
00576625  jnz GoodName.005767F2
0057662B  lea edx,dword ptr ss:[ebp-40]
0057662E  mov eax,dword ptr ss:[ebp-C]
00576631  call GoodName.00409070  複製註冊碼
00576636  mov eax,dword ptr ss:[ebp-40]
00576639  call GoodName.004049D0  查註冊碼位數
0057663E  cmp eax,15
00576641  jle GoodName.005767F2
00576647  lea eax,dword ptr ss:[ebp-48]
0057664A  push eax
0057664B  lea edx,dword ptr ss:[ebp-50]
0057664E  mov eax,dword ptr ss:[ebp-8]
00576651  call GoodName.0040942C  
00576656  mov eax,dword ptr ss:[ebp-50]
00576659  lea edx,dword ptr ss:[ebp-4C]
0057665C  call GoodName.00409070  複製申請碼
00576661  lea eax,dword ptr ss:[ebp-4C]
00576664  mov edx,GoodName.005769F4        ; ASCII "       "
00576669  call GoodName.004049D8  申請碼後加空格
0057666E  mov eax,dword ptr ss:[ebp-4C]
00576671  mov ecx,8
00576676  mov edx,1
0057667B  call GoodName.00404C30  取前8位
00576680  lea eax,dword ptr ss:[ebp-48]
00576683  mov edx,dword ptr ss:[ebp-10]
00576686  call GoodName.004049D8  申請碼加上姓
0057668B  mov eax,dword ptr ss:[ebp-48]
0057668E  lea edx,dword ptr ss:[ebp-44]
00576691  call GoodName.004E0E1C
00576696  mov edx,dword ptr ss:[ebp-44]
00576699  mov eax,GoodName.00583F50
0057669E  call GoodName.00404764
005766A3  lea edx,dword ptr ss:[ebp-58]
005766A6  mov eax,dword ptr ss:[ebp-C]
005766A9  call GoodName.00514ADC
005766AE  mov eax,dword ptr ss:[ebp-58]
005766B1  lea edx,dword ptr ss:[ebp-54]
005766B4  call GoodName.004E0E1C
005766B9  mov edx,dword ptr ss:[ebp-54]
005766BC  mov eax,GoodName.00583F54
005766C1  call GoodName.00404764
005766C6  lea edx,dword ptr ss:[ebp-68]
005766C9  mov eax,dword ptr ds:[583F50]
005766CE  call GoodName.004F5F24
005766D3  lea eax,dword ptr ss:[ebp-68]
005766D6  lea edx,dword ptr ss:[ebp-10]
005766D9  call GoodName.004F5F98
005766DE  lea eax,dword ptr ss:[ebp-70]
005766E1  push eax
005766E2  lea edx,dword ptr ss:[ebp-74]
005766E5  mov eax,dword ptr ds:[583F54]
005766EA  call GoodName.004E0E1C
005766EF  mov eax,dword ptr ss:[ebp-74]
005766F2  mov ecx,10
005766F7  mov edx,1
005766FC  call GoodName.00404C30
00576701  mov eax,dword ptr ss:[ebp-70]
00576704  lea ecx,dword ptr ss:[ebp-6C]
00576707  mov edx,dword ptr ss:[ebp-10]
0057670A  call GoodName.004F548C
0057670F  mov eax,dword ptr ss:[ebp-6C]
00576712  lea edx,dword ptr ss:[ebp-68]
00576715  call GoodName.004F5F24
0057671A  lea eax,dword ptr ss:[ebp-68]
0057671D  push eax
0057671E  lea edx,dword ptr ss:[ebp-88]
00576724  mov eax,dword ptr ds:[583F50]
00576729  call GoodName.004F96A0
0057672E  mov eax,dword ptr ss:[ebp-88]
00576734  lea edx,dword ptr ss:[ebp-84]
0057673A  call GoodName.004F5F24
0057673F  lea eax,dword ptr ss:[ebp-84]
00576745  pop edx
00576746  call GoodName.004F601C  關鍵比較
0057674B  mov byte ptr ds:[583F48],al  al要等於1才行
00576750  cmp byte ptr ds:[583F48],0
00576757  je short GoodName.00576769
00576759  mov eax,dword ptr ss:[ebp-4]
0057675C  mov eax,dword ptr ds:[eax+44C]
00576762  mov dl,1
00576764  call GoodName.0046A4EC
00576769  cmp byte ptr ds:[583F48],0
00576770  je short GoodName.00576784
00576772  mov eax,dword ptr ss:[ebp-4]
00576775  mov eax,dword ptr ds:[eax+340]
0057677B  xor edx,edx
0057677D  call GoodName.0046A608
00576782  jmp short GoodName.005767B7
00576784  mov eax,dword ptr ss:[ebp-4]
00576787  mov eax,dword ptr ds:[eax+340]
0057678D  xor edx,edx
0057678F  call GoodName.0046A608
00576794  mov al,byte ptr ss:[ebp-8]
00576797  call GoodName.005192A4
0057679C  mov eax,dword ptr ss:[ebp-4]
0057679F  mov eax,dword ptr ds:[eax+3B8]
005767A5  mov edx,dword ptr ss:[ebp-8]
005767A8  call GoodName.00521864
005767AD  mov eax,dword ptr ds:[583F30]
005767B2  call GoodName.00403884
005767B7  cmp dword ptr ss:[ebp-8],63
005767BB  jle short GoodName.005767F9
005767BD  lea eax,dword ptr ss:[ebp-90]
005767C3  call GoodName.005115F8
005767C8  mov eax,dword ptr ss:[ebp-90]
005767CE  lea edx,dword ptr ss:[ebp-8C]
005767D4  call GoodName.00409070
005767D9  mov eax,dword ptr ss:[ebp-8C]
005767DF  call GoodName.00409598
005767E4  cmp eax,dword ptr ss:[ebp-8]
005767E7  je short GoodName.005767F9
005767E9  mov byte ptr ds:[583F48],0
005767F0  jmp short GoodName.005767F9
005767F2  mov byte ptr ds:[583F48],0
005767F9  cmp dword ptr ss:[ebp-8],64
005767FD  jge short GoodName.00576806
005767FF  mov byte ptr ds:[583F48],0
00576806  mov eax,dword ptr ss:[ebp-14]
00576809  call GoodName.0043D3A4
0057680E  xor eax,eax
00576810  pop edx
00576811  pop ecx
00576812  pop ecx
00576813  mov dword ptr fs:[eax],edx
00576816  push GoodName.0057682B
0057681B  mov eax,dword ptr ss:[ebp-14]
0057681E  call GoodName.00403884
00576823  retn


相關文章