註冊FreeRes.exe V0.94,並用Keymake 1.33版本做它的序號產生器! (6千字)

看雪資料發表於2002-01-05

程式名稱:FreeRes.exe V0.94
軟體簡介:摘錄軟體說明
   
  現在的加殼壓縮工具越來越多,而且國內外越來越多的共享軟體製作者都喜歡用這些工具(包括我在內,ResTools 系列工具軟體也經過 ASPack 壓縮),令到 ASPack,UPX 之流的軟體大行其道,但國內漢化界所面對的問題卻越來越嚴重,因為被壓縮的資源無法正常編輯。而在這時候,相繼出現了一部分脫殼工具,收到不錯的效果,解決了不少問題;同時,也出現了一些只分析壓縮資源而非脫殼工具之流的工具。針對壓縮資源,我開發了 ResTools 系列工具的一員:freeRes

下載地址:http://go6.163.com/restools/fr011110.zip
破解目的:找出註冊碼。 用Keymake 1.33版本做它的序號產生器!
工具:Trw2000 1.22 ,w32dsm89黃金版 ,Procdump V1.62

說明:原exe檔案是加殼的,用fi可以看出來,用相應的程式(Procdump等,後附script.ini的擴充套件)
可以去掉殼。 程式在你輸入註冊碼後,把你輸入的註冊名和註冊碼儲存在登錄檔裡的同時進行註冊碼
比較。

啟動Trw2000 載入FreeRes.exe
下斷點 bpx regqueryvalueexa 
    f5 返回程式
    點選程式 Help 選單,點選註冊輸入註冊名字和註冊碼,確定。
    “啪”斷下來了吧!!
    bc * 清除斷點
    pmodule 返回程式領空
    慢慢按 F10 來到如下地方:
   

* Possible StringData Ref from Data Obj ->"SOFTWARE\RESTOOLS\freeRes"
                                  |
:004BBC4A BAA4BD4B00              mov edx, 004BBDA4
:004BBC4F 8B45F8                  mov eax, dword ptr [ebp-08]
:004BBC52 E8A1F4FFFF              call 004BB0F8
:004BBC57 84C0                    test al, al
:004BBC59 0F84F4000000            je 004BBD53
:004BBC5F 8D45F4                  lea eax, dword ptr [ebp-0C]
:004BBC62 E82580F4FF              call 00403C8C
:004BBC67 8D45F0                  lea eax, dword ptr [ebp-10]
:004BBC6A E81D80F4FF              call 00403C8C

* Possible StringData Ref from Data Obj ->"reguser"
                                  |
:004BBC6F BAC8BD4B00              mov edx, 004BBDC8
:004BBC74 8B45F8                  mov eax, dword ptr [ebp-08]
:004BBC77 E898F7FFFF              call 004BB414
:004BBC7C 84C0                    test al, al
:004BBC7E 7410                    je 004BBC90
:004BBC80 8D4DF4                  lea ecx, dword ptr [ebp-0C]

* Possible StringData Ref from Data Obj ->"reguser"
                                  |
:004BBC83 BAC8BD4B00              mov edx, 004BBDC8
:004BBC88 8B45F8                  mov eax, dword ptr [ebp-08]
:004BBC8B E830F6FFFF              call 004BB2C0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004BBC7E(C)
|

* Possible StringData Ref from Data Obj ->"regcode"
                                  |
:004BBC90 BAD8BD4B00              mov edx, 004BBDD8
:004BBC95 8B45F8                  mov eax, dword ptr [ebp-08]
:004BBC98 E877F7FFFF              call 004BB414
:004BBC9D 84C0                    test al, al
:004BBC9F 7410                    je 004BBCB1
:004BBCA1 8D4DF0                  lea ecx, dword ptr [ebp-10]

* Possible StringData Ref from Data Obj ->"regcode"
                                  |
:004BBCA4 BAD8BD4B00              mov edx, 004BBDD8
:004BBCA9 8B45F8                  mov eax, dword ptr [ebp-08]
:004BBCAC E80FF6FFFF              call 004BB2C0

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004BBC9F(C)
|
:004BBCB1 8B45F0                  mov eax, dword ptr [ebp-10]  ;<-輸入的假註冊碼
:004BBCB4 E85382F4FF              call 00403F0C
:004BBCB9 83F828                  cmp eax, 00000028            ;<-註冊碼的長度40
:004BBCBC 0F8591000000            jne 004BBD53                  ;<-不等就跳,註冊失敗
:004BBCC2 8B45F4                  mov eax, dword ptr [ebp-0C]
:004BBCC5 E84282F4FF              call 00403F0C
:004BBCCA 85C0                    test eax, eax
:004BBCCC 0F8E81000000            jle 004BBD53
:004BBCD2 68348C0000              push 00008C34
:004BBCD7 8D45EC                  lea eax, dword ptr [ebp-14]
:004BBCDA 50                      push eax
:004BBCDB B983310000              mov ecx, 00003183
:004BBCE0 BAD6030000              mov edx, 000003D6
:004BBCE5 8B45F4                  mov eax, dword ptr [ebp-0C]
:004BBCE8 E823FCFFFF              call 004BB910
:004BBCED 8B55EC                  mov edx, dword ptr [ebp-14]
:004BBCF0 8D45F4                  lea eax, dword ptr [ebp-0C]
:004BBCF3 E82C80F4FF              call 00403D24
:004BBCF8 8D55E8                  lea edx, dword ptr [ebp-18]
:004BBCFB 8B45F4                  mov eax, dword ptr [ebp-0C]
:004BBCFE E89DFAFFFF              call 004BB7A0
:004BBD03 8B45E8                  mov eax, dword ptr [ebp-18]  ;<-真註冊碼
:004BBD06 8B55F0                  mov edx, dword ptr [ebp-10]  ;<-輸入的假註冊碼
:004BBD09 E80E83F4FF              call 0040401C                <<==關鍵比較
:004BBD0E 750C                    jne 004BBD1C
:004BBD10 A100144D00              mov eax, dword ptr [004D1400]
:004BBD15 8B00                    mov eax, dword ptr [eax]
:004BBD17 E87049F9FF              call 0045068C


:0040401C 53                      push ebx
:0040401D 56                      push esi
:0040401E 57                      push edi
:0040401F 89C6                    mov esi, eax
:00404021 89D7                    mov edi, edx
:00404023 39D0                    cmp eax, edx        D EAX 真註冊碼 D edx 假註冊碼
:00404025 0F848F000000            je 004040BA


  ==========================
 
  用Keymake 1.33版本做它的序號產生器!
  一)選擇F8-另類序號產生器!
  1、程式名稱:freeRes.exe(脫殼後)
  2、新增資料:
    中斷地址:4bbd0
    中斷次數:1
    第一位元組:E8
    指令長度:5

  再次新增資料:
    中斷地址:404023
    中斷次數:1
    第一位元組:39
    指令長度:2

 
  二、選擇暫存器方式 EAX 
 
   先第一次執行註冊資訊後,再執行本序號產生器!一切OK!能顯示40位長註冊碼!!!
 
    ==========================
==> 一點題外話:程式註冊後,一起動就退出。誰能把它砍翻?

  用Procdump脫Asppack殼的 script.ini 擴充套件

在[INDEX]後新增
pXX=Aspack (XX為十六進位制)

[Aspack]
L1=OBJR
L2=LOOK EB,?
L3=JZ 5
L4=QUIT
L5=BP
L6=WALK
L7=OBJR
L8=LOOK 61,75   
L9=BP
LA=STEP
OPTL1=00000000
OPTL2=01010001
OPTL3=01010001
OPTL4=00030000
OPTL5=00000000

這樣一來 Procdump 就可以脫掉到目前為止所有 Asppack 的殼了。

相關文章