UltraEdit32 v10找註冊碼+去暗樁
UltraEdit32 v10找註冊碼+去暗樁
【目 標】: UltraEdit32 v10
【工 具】:Olydbg1.1(diy版)
【任 務】:找到註冊碼並去除暗樁
【操作平臺】:WINDOWS 2000 ADV
【作 者】:loveboom[DFCG]
【相關連結】: www.UltraEdit.com
【簡要說明】:近來沒有錢買隨身碟,也沒錢上網,就在單位裡翻了一下舊光碟,也就找到了這東西。.
【詳細過程】:
安裝執行Uedit32,並輸入如下資訊:
假碼資訊:
Name:loveboom[DFCG]
SN: 77585-52013-13520-02514
完畢後,軟體告訴你,要重啟來驗證。那我們就用OD重新載入它.下斷bpx CreateFileA再執行,這樣中斷幾次後看到堆疊:
0012F970 014F61F8 |FileName = "C:Program FilesUltraEditUedit32.REG"
0012F974 80000000 |Access = GENERIC_READ
0012F978 00000000 |ShareMode = 0
0012F97C 0012FA9C |pSecurity = 0012FA9C
0012F980 00000003 |Mode = OPEN_EXISTING
0012F984 00000080 |Attributes = NORMAL
0012F988 00000000 hTemplateFile = NULL
也就是這裡中斷了
0051B162 |. 51 PUSH ECX ; |Access
0051B163 |. FF75 08 PUSH DWORD PTR SS:[EBP+8] ; |這裡就是檔名:Uedit32.reg
0051B166 |. FF15 38D45400 CALL DWORD PTR DS:[<&KERNEL32.CreateFile>; CreateFileA
0051B16C |. 83F8 FF CMP EAX,-1
0051B16F |. 75 28 JNZ SHORT Uedit32.0051B199 ; 如果CreateFileA成功的話就跳
按一會F8到這裡
00448421 . 68 02010000 PUSH 102 ; /Arg2 = 00000102
00448426 . 50 PUSH EAX ; |Arg1
00448427 . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C] ; |
0044842A . E8 792D0D00 CALL Uedit32.0051B1A8 //這裡進去的話就知道是ReadFile了,
0044842F . 8D4D E4 LEA ECX,DWORD PTR SS:[EBP-1C]
……
00448443 > /8A8C35 79FDFF>MOV CL,BYTE PTR SS:[EBP+ESI-287]
0044844A . |8A8435 78FDFF>MOV AL,BYTE PTR SS:[EBP+ESI-288]
00448451 . |FEC9 DEC CL
00448453 . |FEC8 DEC AL
00448455 . |888C35 7CFEFF>MOV BYTE PTR SS:[EBP+ESI-184],CL
0044845C . |888435 7DFEFF>MOV BYTE PTR SS:[EBP+ESI-183],AL
00448463 . |46 INC ESI
00448464 . |46 INC ESI
00448465 . |3BF7 CMP ESI,EDI
00448467 .^7E DA JLE SHORT Uedit32.00448443 //迴圈解密資料
00448469 . 8D85 7CFEFFFF LEA EAX,DWORD PTR SS:[EBP-184]
現在再下斷bpx CreateWindowExA也就是建立視窗API函式,執行後第一次中斷:
0047A73F . 53 PUSH EBX ; |Style
0047A740 . 57 PUSH EDI ; |WindowName
0047A741 . 57 PUSH EDI ; |Class
0047A742 . 53 PUSH EBX ; |ExtStyle
0047A743 . FF15 0CD85400 CALL DWORD PTR DS:[<&USER32.CreateWindow> //CreateWindowExA 中斷在這裡
0047A749 . A3 74DA5900 MOV DWORD PTR DS:[59DA74],EAX
0047A74E . 8D86 04050000 LEA EAX,DWORD PTR DS:[ESI+504] ; 使用者名稱"loveboom[DFCG]"入EAX
0047A754 . 8858 10 MOV BYTE PTR DS:[EAX+10],BL
0047A757 . FF35 D8335900 PUSH DWORD PTR DS:[5933D8] ; push假碼所在的地址
0047A75D . 6A 01 PUSH 1
0047A75F . 50 PUSH EAX
0047A760 . FF75 F0 PUSH DWORD PTR SS:[EBP-10]
0047A763 . E8 50DEF9FF CALL Uedit32.004185B8 ; 關鍵Call跟進
0047A768 . 83C4 10 ADD ESP,10
0047A76B . 85C0 TEST EAX,EAX
0047A76D . 0F84 29020000 JE Uedit32.0047A99C
……
跟進後來到這裡:
004185C2 |. 57 PUSH EDI
004185C3 |. 8B7D 08 MOV EDI,DWORD PTR SS:[EBP+8] ; EDI="loveboom[DFCG]"
004185C6 |. 57 PUSH EDI ; push Name
004185C7 |. E8 C46F0E00 CALL Uedit32.004FF590
004185CC |. 33DB XOR EBX,EBX
004185CE |. 59 POP ECX
004185CF |. 395D 14 CMP DWORD PTR SS:[EBP+14],EBX
004185D2 |. 74 0A JE SHORT Uedit32.004185DE
004185D4 |. C705 E4335900>MOV DWORD PTR DS:[5933E4],1
004185DE |> 395D 10 CMP DWORD PTR SS:[EBP+10],EBX
004185E1 |. 0F84 25030000 JE Uedit32.0041890C
004185E7 |. 83F8 06 CMP EAX,6 ; 使用者長度和6相比
004185EA |. 0F8C 1C030000 JL Uedit32.0041890C ; 這裡一跳就over
004185F0 |. 8065 EC 00 AND BYTE PTR SS:[EBP-14],0
……
0041860F |. 59 POP ECX ; pop user name
00418610 |. 6A 3C PUSH 3C
00418612 |. 5E POP ESI
00418613 |. 3BC6 CMP EAX,ESI
00418615 |. 77 09 JA SHORT Uedit32.00418620
00418617 |. 57 PUSH EDI
00418618 |. E8 736F0E00 CALL Uedit32.004FF590
0041861D |. 59 POP ECX
0041861E |. 8BF0 MOV ESI,EAX ; esi=len("loveboom[DFCG]"=0xE(14)
00418620 |> 8975 F4 MOV DWORD PTR SS:[EBP-C],ESI
00418623 |. 33C9 XOR ECX,ECX
00418625 |> 8AC1 /MOV AL,CL
00418627 |. B2 03 |MOV DL,3
00418629 |. F6EA |IMUL DL
0041862B |. 2AC2 |SUB AL,DL
0041862D |. 88840D 70FFFF>|MOV BYTE PTR SS:[EBP+ECX-90],AL
00418634 |. 41 |INC ECX
00418635 |. 83F9 3D |CMP ECX,3D
00418638 |.^ 72 EB JB SHORT Uedit32.00418625
0041863A |. 56 PUSH ESI
0041863B |. 8D85 70FFFFFF LEA EAX,DWORD PTR SS:[EBP-90]
00418641 |. 57 PUSH EDI ; push 使用者名稱
00418642 |. 50 PUSH EAX
00418643 |. E8 48730E00 CALL Uedit32.004FF990
00418648 |. 80A435 70FFFF>AND BYTE PTR SS:[EBP+ESI-90],0
00418650 |. 83C4 0C ADD ESP,0C
00418653 |. 33C9 XOR ECX,ECX
00418655 |. 4E DEC ESI
00418656 |. 6A 01 PUSH 1
00418658 |. 894D F0 MOV DWORD PTR SS:[EBP-10],ECX
0041865B |. 5A POP EDX
0041865C |. 3BF2 CMP ESI,EDX
0041865E |. 7E 3A JLE SHORT Uedit32.0041869A
00418660 |. C745 10 02000>MOV DWORD PTR SS:[EBP+10],2
00418667 |> 0FBEBC15 6FFF>/MOVSX EDI,BYTE PTR SS:[EBP+EDX-91] ; 這裡開始就是一堆演算法了,有興趣的一步一步跟吧
0041866F |. 0FBE9C15 71FF>|MOVSX EBX,BYTE PTR SS:[EBP+EDX-8F]
……
演算法那麼長的,我沒心去研究所以直接F4到下面:
004188EA |. /74 26 JE SHORT Uedit32.00418912
004188EC |. |8D85 30FFFFFF LEA EAX,DWORD PTR SS:[EBP-D0] ; 到這裡就可以看到真碼入eax了
004188F2 |. |50 PUSH EAX ; 真碼入棧
004188F3 |. |8D45 B0 LEA EAX,DWORD PTR SS:[EBP-50] ; 假碼入eax再同樣入棧
004188F6 |. |50 PUSH EAX ; 假碼入棧
004188F7 |. |E8 E4860E00 CALL Uedit32.00500FE0 ; 既然真假碼都入棧,那這個Call就可以猜到它是進行比較的了
004188FC |. |59 POP ECX
004188FD |. |85C0 TEST EAX,EAX
這裡就看到真假碼了(堆疊):
0012F9F8 0012FA88 ASCII "70585-52010-03020-02510"
0012F9FC 0012FA08 ASCII "R0D3G-Y6A50-0106M-Y6R40"
……
上面那個比較Call進入後就看到這裡了:
00500FE0 /$ 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4] ; 假碼入edx
00500FE4 |. 8B4C24 08 MOV ECX,DWORD PTR SS:[ESP+8] ; 真碼入ecx
00500FE8 |. F7C2 03000000 TEST EDX,3
00500FEE |. 75 3C JNZ SHORT Uedit32.0050102C ; 比較夠不夠"資格"先,不夠就跳也就over了
00500FF0 |> 8B02 /MOV EAX,DWORD PTR DS:[EDX] ; 這一段就是一個一個比較了,
00500FF2 |. 3A01 |CMP AL,BYTE PTR DS:[ECX]
00500FF4 |. 75 2E |JNZ SHORT Uedit32.00501024 ; 發現不同就over了
00500FF6 |. 0AC0 |OR AL,AL
現在我們就得到了自己的正確的註冊碼了,其實跟過幾次之後發現有一個更快的方法找到真碼。方法是:在CreateFileA對uedit32.reg檔案操作的下一次CreateFileA也就是操作uedit32.cfg的時候D esp+64就可以看到真碼。註冊碼是找到了,但我們執行一次後就會發現退出時它把註冊檔案給刪除了,也就是說有暗樁。所以我們要把這個”二五仔”給揪出來。既然它要刪除檔案那麼我們就下bpx DeleteFileA來攔住它。註冊成功後再次用OD載入並執行,再下刪除檔案斷,下斷後退出uedit,這樣就可以攔下:
004487BC . 68 80000000 PUSH 80 ; /FileAttributes = NORMAL
004487C1 . FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; |FileName
004487C4 . FF15 9CD45400 CALL DWORD PTR DS:[<&KERNEL32.SetFileAttributesA>] ; SetFileAttributesA
004487CA . FF75 F0 PUSH DWORD PTR SS:[EBP-10] ; /FileName
004487CD . FF15 C0D45400 CALL DWORD PTR DS:[<&KERNEL32.DeleteFileA>] ; 這裡攔住了
004487D3 . A1 48D15900 MOV EAX,DWORD PTR DS:[59D148]
找到了就好辦了,從NOP掉4487ca和4487cd兩行。
好了,現在再試試執行沒什麼問題了。
【總 結】
註冊資訊:
Name:loveboom[DFCG]
SN:R0D3G-Y6A50-0106M-Y6R40
去暗樁:
004487CA FF 75 F0 FF 15 C0 D4 54 00 u? 澇T.HY
改為
004487CA 90 90 90 90 90 90 90 90 90 HY.
獻給我親愛的DFCG,願它能夠蒸蒸日上!
Thanks:
Fly 輝仔yock、jingulong、二哥、所有曾經關心支援或幫助過我的朋友!謝謝您們!
by loveboom[DFCG]
Email:bmd2chen@tom.com
2004-3-15
相關文章
- VideoSplitter V2.31 脫殼去暗樁+完美爆破2015-11-15IDE
- 第七章-尋找軟體的註冊碼2015-11-15
- ASF-AVI-RM-WMV Repair V1.41 脫殼去暗樁+漢化完美爆破2015-11-15AI
- ASProtect 1.23 SDK之 Aspack2.12r 主程式脫殼去暗樁2015-11-15
- 用ollydbg找eBook Edit Pro v3.21的註冊碼2003-02-12
- 易語言3.5很暗的暗樁分析:)2015-11-15
- Emeditor 註冊碼2017-08-14
- WebStorm註冊碼2014-04-29WebORM
- PhpStorm註冊碼2020-04-07PHPORM
- Navicat for MySQL註冊碼2020-04-07MySql
- SecureCRT 7 註冊碼2016-09-02Securecrt
- 關於UltraEdit32 v8.1的註冊校驗(PJ手記).高手免看! (14千字)2002-02-01
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊2019-03-03原始碼
- Viscosity for Mac 註冊碼:2019-09-19Mac
- PLSQL Developer 12 註冊碼2018-06-07SQLDeveloper
- PLSQL Developer 9.0註冊碼2013-01-22SQLDeveloper
- sublime text for Mac註冊啟用 sublime text4註冊碼2023-10-11Mac
- Instant Source 註冊演算法分析+註冊器原始碼2015-11-15演算法原始碼
- 用ollyDbg尋找VB程式的註冊核心的一點思路2003-06-20
- wing ftp server 註冊碼2020-11-23FTPServer
- phpstrom 註冊碼獲取2018-05-23PHP
- IntelliJ IDEA 註冊碼2017-05-05IntelliJIdea
- Pycharm安裝破解 註冊碼2017-06-25PyCharm
- Myeclipse10註冊碼2014-05-20Eclipse
- myeclipse獲取註冊碼2011-12-07Eclipse
- Theme Builder註冊碼分析2015-11-15UI
- ShadowDefender 註冊碼 分析2024-08-17
- Navicat for MySQL 11註冊碼\啟用碼2019-02-11MySql
- 今天好多人 phpstrom 編譯器註冊碼失效了,最新可用註冊碼2019-12-24PHP編譯
- 找尋3DMark2001se的註冊碼,第一篇破文!2003-06-293D
- nacos註冊中心原始碼流程分析2020-12-23原始碼
- IntelliJ IDEA 14 註冊碼2017-04-09IntelliJIdea
- pycharm 2016.3.2註冊碼2017-05-15PyCharm
- Pycharm 2016註冊碼2017-11-22PyCharm
- PLSQL Developer V9 註冊碼2013-03-22SQLDeveloper
- 動態註冊和靜態註冊2018-05-21
- 靜態註冊和動態註冊2013-11-27
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(三)之下線2019-02-19原始碼