OBSIDIUM V1.25 Code Injection
【目 標】: 超級自動註冊申請王 V1.9
【工 具】:
【任 務】:不脫殼代碼注入破解
【操作平臺】:Win2003
【作 者】: LOVEBOOM[DFCG][FCG][US]
【相關鏈接】: http://www2.skycn.com/soft/21992.html
【簡要說明】: 上午看到FLY的那篇文章,GOOD,沒什麼話好說,pf,剛好這幾天正在研究殼的Injection技術,也搞定了幾個對象,正好OBS的Code Injection沒有看過,今天就看一下,不小心撿了個便宜。
【詳細過程】:
怎麼脫殼我就不多說了,想脫的朋友直接看FLY的文章就可以了。載入目標程序去掉那幾個Anti-debug,然後一路跑到OEP處,停下先,忘記了改系統時間,把系統時間改後一年二年等,反正就是讓軟件過期了。改好後,follow rtcMsgBox,然後在ret處設置斷點,運行中斷後,返回程序代碼,再找一下就會發現以下幾個地方改成jmp 就可以跳過日期檢測。
004D862C . /0F84 30010000 JE 004D8762
……
004D7F81 /0F84 BE010000 JE 004D8145
……
004D8818 /0F84 49020000 JE 004D8A67
找到這幾個破解點後,重新加載目標程序,去掉Anti-debug,在4d862c處下內存寫入斷點,運行後中斷後,跟蹤會發現到下面的地方:
0066EF49 8B47 F8 MOV EAX,DWORD PTR DS:[EDI-8]
0066EF4C 0347 EC ADD EAX,DWORD PTR DS:[EDI-14]
到這裏後原程序的代碼就全部解壓完了。
用lordpe打開後發現這裏的代碼也同樣加密過的,我們又重來一次找出解碼處,內存訪問斷點,斷下後,發現解碼,當然這裏你可直接用他的解碼方法來patch上面的地址,我是用解壓後修改代碼的方法。有解壓後修改代碼的方法的話發現解出正確的代碼後,執行上面的代碼之前會經過這裏:
0066FD0F 33C0 XOR EAX,EAX
0066FD11 40 INC EAX
0066FD12 5B POP EBX
0066FD13 5F POP EDI
用Lordpe打開再看一下,這裏的代碼還是加密過的,再次做重複工作,發現這裏有機可乘:
006734F6 61 POPAD
006734F7 C3 RETN
006734F8 8105 00000000 0>ADD DWORD PTR DS:[0],340000
這裏的代碼用lordpe看一下,沒錯了,這裏的代碼沒有加密。用hex編輯器隨便寫點東西運行一下,發現沒有問題,這樣就說明程序沒有CRC檢測。分析完畢,到這裏我們要的東西全部有了,同樣開始動手,寫代碼。代碼是非常之簡單的,和這篇文章一樣的簡單:-),因此,我不寫註釋了哦。
Patch代碼如下:
006784EF B8 0FFD6600 MOV EAX,0066FD0F ; 0
006784F4 BB 18856700 MOV EBX,00678518
006784F9 2BD8 SUB EBX,EAX
006784FB 83EB 05 SUB EBX,5
006784FE C600 E9 MOV BYTE PTR DS:[EAX],0E9
00678501 8958 01 MOV DWORD PTR DS:[EAX+1],EBX
00678504 832C24 05 SUB DWORD PTR SS:[ESP],5
00678508 8B0424 MOV EAX,DWORD PTR SS:[ESP]
0067850B C600 61 MOV BYTE PTR DS:[EAX],61
0067850E C740 01 C381050>MOV DWORD PTR DS:[EAX+1],581C3
00678515 C3 RETN
00678516 90 NOP
00678517 90 NOP
00678518 50 PUSH EAX
00678519 B8 49EF6600 MOV EAX,0066EF49
0067851E 8138 8B47F803 CMP DWORD PTR DS:[EAX],3F8478B
00678524 75 21 JNZ SHORT 00678547
00678526 53 PUSH EBX
00678527 BB 60856700 MOV EBX,00678560
0067852C 2BD8 SUB EBX,EAX
0067852E 83EB 05 SUB EBX,5
00678531 C600 E8 MOV BYTE PTR DS:[EAX],0E8
00678534 8958 01 MOV DWORD PTR DS:[EAX+1],EBX
00678537 5B POP EBX
00678538 B8 0FFD6600 MOV EAX,0066FD0F
0067853D C600 33 MOV BYTE PTR DS:[EAX],33
00678540 C740 01 C0405B5>MOV DWORD PTR DS:[EAX+1],5F5B40C0
00678547 58 POP EAX
00678548 33C0 XOR EAX,EAX
0067854A 40 INC EAX
0067854B 5B POP EBX
0067854C 5F POP EDI
0067854D ^ E9 C277FFFF JMP 0066FD14
00678552 0000 ADD BYTE PTR DS:[EAX],AL
00678554 0000 ADD BYTE PTR DS:[EAX],AL
00678556 0000 ADD BYTE PTR DS:[EAX],AL
00678558 0000 ADD BYTE PTR DS:[EAX],AL
0067855A 0000 ADD BYTE PTR DS:[EAX],AL
0067855C 0000 ADD BYTE PTR DS:[EAX],AL
0067855E 0000 ADD BYTE PTR DS:[EAX],AL
00678560 50 PUSH EAX
00678561 B8 2C864D00 MOV EAX,004D862C
00678566 66:C700 90E9 MOV WORD PTR DS:[EAX],0E990
0067856B B8 817F4D00 MOV EAX,004D7F81
00678570 66:C700 90E9 MOV WORD PTR DS:[EAX],0E990
00678575 B8 18884D00 MOV EAX,004D8818
0067857A 66:C700 90E9 MOV WORD PTR DS:[EAX],0E990
0067857F 8D4424 04 LEA EAX,DWORD PTR SS:[ESP+4]
00678583 8328 05 SUB DWORD PTR DS:[EAX],5
00678586 8B00 MOV EAX,DWORD PTR DS:[EAX]
00678588 C600 8B MOV BYTE PTR DS:[EAX],8B
0067858B C740 01 47F8034>MOV DWORD PTR DS:[EAX+1],4703F847
00678592 58 POP EAX
00678593 C3 RETN
這篇文章和OBSIDIUM 1.25脫殼一樣,非常之簡單,脫殼破解半個鍾可以搞定,直接Code injection也同樣半個鍾就可以搞的說。祝你成功!!不要問我關於這個軟件的註冊算法/完全破解之類的哦。
BTW: Vcasm’s portect also can Code Injectioned.try itJ
Greetz:
Fly.Jingulong,yock,tDasm.David.hexer,hmimys,ahao.UFO(brother).alan(sister).all of my friends and you!
By loveboom[DFCG][FCG][US]
Email:loveboom#163.com
Date:2005-4-30 15:09