在你保存工程的的文件夾里面的Debug文件夾里面,如:
網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、重慶小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了威遠免費建站歡迎大家使用!
我的工程文件夾是這個:D:\Projects\test
生成出來的EXE文件就在:D:\Projects\test\Debug里面
里面有一個以工程名稱命名的EXE文件,那個就是了。
(記?。阂仍赩S2008里面運行一次程序,文件夾里面才會有EXE文件的)
原理有很多,這里實現(xiàn)的是在文件結尾追加配置字符的方法。
程序下載,右鍵另存為rar文件:/uploadfile/200510/20051017144056534.gif就可以實現(xiàn)注冊機了。
注冊機就是批量生成相同功能的而內(nèi)部配置不用程序文件的程序,這個程序的好處是不用在修改源代碼重新編譯的情況下產(chǎn)生新的文件,廣泛應用與木馬行業(yè)。
注冊機是一種破解軟件,它的用途基本在兩個范圍之內(nèi):
一個就是由于一些軟件涉及版權問題,要完全使用的話需要注冊,或者有試用期限限制,或者只有注冊之后才可以享受全功能。第二個就是某些網(wǎng)站、網(wǎng)頁通過正常注冊用戶會很復雜,或者是網(wǎng)頁、網(wǎng)站管理員需要大量注冊內(nèi)測用戶的時候就可以用注冊機來達到簡單快速的注冊用戶了。
總結如下:
注冊機則解決了這一問題,注冊機根據(jù)其相應解決的軟件而有不同的形式,一般需要脫殼軟件、內(nèi)存查看軟件和反組譯器等破解工具作為輔助。大部分在我們拿到注冊機之后,可以得到相應的一些注冊碼或者其他相應的一些東西。這些都是破解該軟件所需的,我們只要按照步驟填寫那些注冊碼,被封的軟件就可以高枕無憂的使用了。
大部分在我們拿到注冊機之后,可以得到相應的一些注冊碼或者其他相應的一些東西。這些都是破解該軟件所需的,我們只要按照步驟填寫那些注冊碼,被封的軟件就可以高枕無憂的使用了。
(一).殼的概念
作者編好軟件后,編譯成exe可執(zhí)行文件。 1.有一些版權信息需要保護起來,不想讓別人隨便改動,如作者的姓名等,即為了保護軟件不被破解,通常都是采用加殼來進行保護。 2.需要把程序搞的小一點,從而方便使用。于是,需要用到一些軟件,它們能將exe可執(zhí)行文件壓縮, 3.在黑客界給木馬等軟件加殼脫殼以躲避殺毒軟件。
實現(xiàn)上述功能,這些軟件稱為加殼軟件。
(二).加殼軟件最常見的加殼軟件ASPACK ,UPX,PEcompact 不常用的加殼軟件WWPACK32;PE-PACK ;PETITE ;NEOLITE
(三).偵測殼和軟件所用編寫語言的軟件,因為脫殼之前要查他的殼的類型。 1.偵測殼的軟件fileinfo.exe 簡稱fi.exe(偵測殼的能力極強) 2.偵測殼和軟件所用編寫語言的軟件language.exe(兩個功能合為一體,很棒) 推薦language2000中文版(專門檢測加殼類型) 3.軟件常用編寫語言Delphi,VisualBasic(VB)---最難破,VisualC(VC)
(四)脫殼軟件。 軟件加殼是作者寫完軟件后,為了保護自己的代碼或維護軟件產(chǎn)權等利益所常用到的手段。目前有很多加殼工具,當然有盾,自然就有矛,只要我們收集全常用脫殼工具,那就不怕他加殼了。軟件脫殼有手動脫殼和自動脫殼之分,下面我們先介紹自動脫殼,因為手動脫殼需要運用匯編語言,要跟蹤斷點等,不適合初學者,但我們在后邊將稍作介紹。
加殼一般屬于軟件加密,現(xiàn)在越來越多的軟件經(jīng)過壓縮處理,給漢化帶來許多不便,軟件漢化愛好者也不得不學習掌握這種技能。現(xiàn)在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調(diào)試工具對付,對脫殼者有一定水平要求,涉及到很多匯編語言和軟件調(diào)試方面的知識。而自動就是用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付,好處是簡單,缺點是版本更新了就沒用了。另外脫殼就是用專門的脫殼工具來對付,最流行的是PROCDUMP v1.62 ,可對付目前各種壓縮軟件的壓縮檔。在這里介紹的是一些通用的方法和工具,希望對大家有幫助。我們知道文件的加密方式,就可以使用不同的工具、不同的方法進行脫殼。下面是我們常常會碰到的加殼方式及簡單的脫殼措施,供大家參考: 脫殼的基本原則就是單步跟蹤,只能往前,不能往后。脫殼的一般流程是:查殼-尋找OEP-Dump-修復 找OEP的一般思路如下: 先看殼是加密殼還是壓縮殼,壓縮殼相對來說容易些,一般是沒有異常,找到對應的popad后就能到入口,跳到入口的方式一般為。 我們知道文件被一些壓縮加殼軟件加密,下一步我們就要分析加密軟件的名稱、版本。因為不同軟件甚至不同版本加的殼,脫殼處理的方法都不相同。
常用脫殼工具: 1、文件分析工具(偵測殼的類型):Fi,GetTyp,peid,pe-scan, 2、OEP入口查找工具:SoftICE,TRW,ollydbg,loader,peid 3、dump工具:IceDump,TRW,PEditor,ProcDump32,LordPE 4、PE文件編輯工具:PEditor,ProcDump32,LordPE 5、重建Import Table工具:ImportREC,ReVirgin 6、ASProtect脫殼專用工具:Caspr(ASPr V1.1-V1.2有效),Rad(只對ASPr V1.1有效),loader,peid
(1)Aspack: 用的最多,但只要用UNASPACK或PEDUMP32脫殼就行了 (2)ASProtect+aspack: 次之,國外的軟件多用它加殼,脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業(yè)知識,但最新版現(xiàn)在暫時沒有辦法。 (3)Upx: 可以用UPX本身來脫殼,但要注意版本是否一致,用-D 參數(shù) (4)Armadill: 可以用SOFTICE+ICEDUMP脫殼,比較煩 (5)Dbpe: 國內(nèi)比較好的加密軟件,新版本暫時不能脫,但可以破解 (6)NeoLite: 可以用自己來脫殼 (7)Pcguard: 可以用SOFTICE+ICEDUMP+FROGICE來脫殼 (8)Pecompat: 用SOFTICE配合PEDUMP32來脫殼,但不要專業(yè)知識 (9)Petite: 有一部分的老版本可以用PEDUMP32直接脫殼,新版本脫殼時需要用到SOFTICE+ICEDUMP,需要一定的專業(yè)知識 (10)WWpack32: 和PECOMPACT一樣其實有一部分的老版本可以用PEDUMP32直接脫殼,不過有時候資源無法修改,也就無法漢化,所以最好還是用SOFTICE配合 PEDUMP32脫殼 我們通常都會使用Procdump32這個通用脫殼軟件,它是一個強大的脫殼軟件,他可以解開絕大部分的加密外殼,還有腳本功能可以使用腳本輕松解開特定外殼的加密文件。
另外很多時候我們要用到exe可執(zhí)行文件編輯軟件ultraedit。我們可以下載它的漢化注冊版本,它的注冊機可從網(wǎng)上搜到。ultraedit打開一個中文軟件,若加殼,許多漢字不能被認出 ultraedit打開一個中文軟件,若未加殼或已經(jīng)脫殼,許多漢字能被認出 ultraedit可用來檢驗殼是否脫掉,以后它的用處還很多,請熟練掌握例如,可用它的替換功能替換作者的姓名為你的姓名注意字節(jié)必須相等,兩個漢字替兩個,三個替三個,不足處在ultraedit編輯器左邊用00補。 [!--empirenews.page--]
常見的殼脫法:
(一)aspack殼 脫殼可用unaspack或caspr 1.unaspack ,使用方法類似lanuage,傻瓜式軟件,運行后選取待脫殼的軟件即可. 缺點:只能脫aspack早些時候版本的殼,不能脫高版本的殼 2.caspr第一種:待脫殼的軟件(如aa.exe)和caspr.exe位于同一目錄下,執(zhí)行windows起始菜單的運行,鍵入 caspr aa.exe脫殼后的文件為aa.ex_,刪掉原來的aa.exe,將aa.ex_改名為aa.exe即可。使用方法類似fi 優(yōu)點:可以脫aspack任何版本的殼,脫殼能力極強 缺點:Dos界面。第二種:將aa.exe的圖標拖到caspr.exe的圖標上***若已偵測出是aspack殼,用unaspack脫殼出錯,說明是aspack高版本的殼,用caspr脫即可。 (二)upx殼 脫殼可用upx待脫殼的軟件(如aa.exe)和upx.exe位于同一目錄下,執(zhí)行windows起始菜單的運行,鍵入upx -d aa.exe (三)PEcompact殼 脫殼用unpecompact 使用方法類似lanuage傻瓜式軟件,運行后選取待脫殼的軟件即可 (四)procdump 萬能脫殼但不精,一般不要用 使用方法:運行后,先指定殼的名稱,再選定欲脫殼軟件,確定即可脫殼后的文件大于原文件由于脫殼軟件很成熟,手動脫殼一般用不到。
三,壓縮與脫殼
現(xiàn)在脫殼一般分手動和自動兩種,手動就是用TRW2000、TR、SOFTICE等調(diào)試工具對付,對脫殼者有一定水平要求。而自動就稍好些,用專門的脫殼工具來脫,最常用某種壓縮軟件都有他人寫的反壓縮工具對應,有些壓縮工具自身能解壓,如UPX;有些不提供這功能,如:ASPACK,就需要UNASPACK對付。很多文件使用了一些壓縮加殼軟件加密過,這就需要對文件進行解壓脫殼處理后,才能漢化。這種壓縮與我們平時接觸的壓縮工具如winzip,winrar等壓縮不同,winzip和winrar等壓縮后的文件不能直接執(zhí)行,而這種 EXE 壓縮軟件,EXE文件壓縮后,仍可以運行。這種壓縮工具把文件壓縮后,會在文件開頭一部分,加了一段解壓代碼。執(zhí)行時該文件時,該代碼先執(zhí)行解壓還原文件,不過這些都是在內(nèi)存中完成的,由于微機速度快,我們基本感覺不出有什么不同。這樣的程序很多,如 The bat,Acdsee,Winxfile等等。
要脫殼就應先了解常用壓縮工具有哪些,這樣知己知彼,如今越來越多的軟件商喜歡用壓縮方式發(fā)行自己的產(chǎn)品,如The bat!用UPX壓縮,ACDSEE3.0用ASPACK壓縮等。它有以下因素:一是:微機性能越來越好,執(zhí)行過程中解壓使人感覺不出來,用戶能接受(給軟件加殼,類似WINZIP 的效果,只不過這個加殼壓縮之后的文件,可以獨立運行,解壓過程完全隱蔽,都在內(nèi)存中完成。解壓原理,是加殼工具在文件頭里加了一段指令,告訴CPU,怎么才能解壓自己?,F(xiàn)在的CPU都很快,所以這個解壓過程你看不出什么異常。因為軟件一下子就打開了,只有你機器配置非常差,才會感覺到不加殼和加殼后的軟件運行速度的差別。)。 二是:壓縮后軟件體積縮小,便于網(wǎng)絡傳輸。三是:增加破解的難度。
首先,加殼軟件不同于一般的winzip,winrar等壓縮軟件.它是壓縮exe可執(zhí)行文件的,壓縮后的文件可以直接運行.而winzip,winrar等壓縮軟件可壓縮任何文件,但壓縮后不能直接運行。很多站點不允許上傳可執(zhí)行文件,而只能上傳壓縮的文件,一方面處于速度考慮,也是為了安全性考慮。用加殼軟件壓縮的文件就是體積縮小,別的性質(zhì)沒改變。還是EXE文件,仍可執(zhí)行,只是運行過程和以前不一樣了。壓縮工具把文件壓縮后,在文件開頭一部分,加了一段解壓代碼。執(zhí)行時該文件時,該代碼先執(zhí)行解壓還原文件,不過這些都是在內(nèi)存中完成的,由于微機速度快,我們基本感覺不出有什么不同。
四、加殼與木馬
木馬危害無窮,但是隨著人們對各種木馬知識的了解,殺毒和專殺工具的特殊照顧,使得很多木馬無藏身之地,但很多高手到處賣馬,號稱不會被查殺。它們究竟是如何躲在我們的系統(tǒng)中的呢? 其實無非對木馬進行“加/脫殼”。對于黑客來說,加/脫殼技術被淋漓盡致地應用到了偽裝木馬客戶端上,目的是為了防止被殺毒軟件反跟蹤查殺和被跟蹤調(diào)試,同時也防止算法程序被別人靜態(tài)分析。最基本的隱藏:不可見窗體+隱藏文件。木馬程序采用“進程隱藏”技術: 第一代進程隱藏技術:Windows 98的后門 。第二代進程隱藏技術:進程插入,以及 其后的Hook技術之外就是跟殺毒軟件對著干:反殺毒軟件外殼技術了。木馬再狡猾,可是一旦被殺毒軟件定義了特征碼,在運行前就被攔截了。要躲過殺毒軟件的追殺,很多木馬就被加了殼,相當于給木馬穿了件衣服,這樣殺毒軟件就認不出來了,但有部分殺毒軟件會嘗試對常用殼進行脫殼,然后再查殺(小樣,別以為穿上件馬夾我就不認識你了)。除了被動的隱藏外,最近還發(fā)現(xiàn)了能夠主動和殺毒軟件對著干的殼,木馬在加了這種殼之后,一旦運行,則外殼先得到程序控制權,由其通過各種手段對系統(tǒng)中安裝的殺毒軟件進行破壞,最后在確認安全(殺毒軟件的保護已被瓦解)后由殼釋放包裹在自己“體內(nèi)”的木馬體并執(zhí)行之。對付這種木馬的方法是使用具有脫殼能力的殺毒軟件對系統(tǒng)進行保護。殼能夠?qū)⑽募?比如EXE)包住,然后在文件被運行時,首先由殼獲得控制權,然后釋放并運行包裹著的文件體。很多殼能對自己包住的文件體進行加密,這樣就可以防止殺毒軟件的查殺。比如原先殺毒軟件定義的該木馬的特征是“12345”,如果發(fā)現(xiàn)某文件中含有這個特征,就認為該文件是木馬,而帶有加密功能的殼則會對文件體進行加密(如:原先的特征是“12345”,加密后變成了“54321”,這樣殺毒軟件當然不能靠文件特征進行檢查了)。脫殼指的就是將文件外邊的殼去除,恢復文件沒有加殼前的狀態(tài)。
雖然很多殺毒軟件如瑞星、KV、諾頓等殺毒軟件的文件監(jiān)控都會使程序首次運行時速度很慢。這是因為:殺毒軟件對壓縮加殼的exe文件監(jiān)控掃描時,都要先“脫殼”。
一般壓縮加殼程序,可加密壓縮可執(zhí)行文件的代碼、數(shù)據(jù)、輸入表、重定位表、資源段。通常壓縮后的文件大小只有原來的50%-70%,但不影響程序的正常使用和所有功能,目的是保護文件不被跟蹤分析,反匯編,脫殼等。所以有時候使用某軟件給木馬脫殼會失敗,但可換個軟件試下。脫殼后重新加殼或者使用不同加殼的軟件給木馬加多層殼,均有可能欺騙殺毒軟件,但在經(jīng)過復雜的多重加殼后,檢測出的結果就不一定準確了,此時就需要使用“adv.scan”高級掃描, pe-scan會分析出被各種加殼工具加殼的可能性。 [!--empirenews.page--]
五、加殼與病毒:
病毒要想生存,除了增加自身的變形能力以外,還可與程序加殼壓縮聯(lián)系起來。我們先來看看病毒變形的目的,因為現(xiàn)在的反病毒軟件,基于特征碼檢測,增加變形能力,使得特征碼檢測方法更加困難。那么,如果再和程序加殼技術結合起來,那么將使的單單通過添加特征碼方法解毒徹底失效,解毒時,必須同時更新掃描引擎,而現(xiàn)在并沒有通用的解殼方法。因此加殼壓縮和變形結合起來,將使得反病毒廠商手忙腳亂,也使得反病毒軟件用戶痛苦不堪,頻繁的更新,除了特征碼,還有掃描引擎。給平常的病毒加個殼,比如用upx,現(xiàn)在通常反病毒軟件,對于常用的加密加殼壓縮程序,都有相應的解殼程序。效果并不好,所以如果病毒本是既是一好的變形加密加殼壓縮程序,那么,目的是強迫更新掃描引擎,當然也是可以被動態(tài)解壓檢測出來的,只是增加了解毒的很多工作量。
實際上加殼技術不僅僅用于軟件保護,也可用于好的病毒。好的病毒不一定要非??斓膫鞑ニ俣?,難于檢測,難于查殺更重要一些,就像現(xiàn)在殺毒界的虛擬機技術,也不過是個雛形,有很多的功能并不能完全虛擬化,同時若加殼代碼本身可變形,同時有多種加殼算法可供隨機選擇,那么就很難找出其中的規(guī)律以及關系??傊?,好的殺毒軟件至少應該具有的技術功能之一就是要具備壓縮還原技術:對Pklite、Diet、Exepack、Com2exe、Lzexe、Cpav等幾百種壓縮加殼軟件自動還原,徹底解除隱藏較深的病毒,避免病毒死灰復燃。
六、手動脫殼一些相關知識:
手動脫殼關鍵就是找到解壓結束后準備跳到正常EXE文件執(zhí)行的那個關鍵點,在TRW2000下環(huán)境下用相關命令操作即可脫殼,如:pedump+自定文件名,即可. 一般調(diào)試經(jīng)驗時注意代碼前的地址有一突變。
(一),強制中斷方法總結
1、SuperBPM工具法
2、在斷點處硬插INT3
3、IceDump中的/tracex命令
4、PEditor中break 'n' enter命令
(二),進程暫停方法總結
1、a eip jmp eip(需在OEP入口前使用)
2、/suspendx pid(pid可用proc命令查得)(SoftIce中)
3、suspend(TRW中)
(三),dump方法總結
1、/dump ImageBase Size e:\dump.exe(SoftIce中)
2、/pedump ImageBase OEP(RVA值) e:\dump.exe(SoftIce中)
3、pedump e:\dump.exe(TRW中)
4、makepe e:\dump.exe(TRW中)
5、w ImageBase L Size e:\dump.exe(TRW中)
6、PEditor中task選項dump(full)命令(其它工具中)
7、ProcDump32中dump(full)命令(其它工具中)
(四),常見的編程語言的入口點
delphi:
55 PUSH EBP
8BEC MOV EBP,ESP
83C4 F0 ADD ESP,-10
B8 A86F4B00 MOV EAX,PE.004B6FA8
vc++
55 PUSH EBP
8BEC MOV EBP,ESP
83EC 44 SUB ESP,44
56 PUSH ESI
vb:
00401166 - FF25 6C104000 JMP DWORD PTR DS:[MSVBVM60.#100] ; MSVBVM60.ThunRTMain
0040116C 68 147C4000 PUSH PACKME.00407C14
00401171 E8 F0FFFFFF CALL JMP.MSVBVM60.#100
00401176 0000 ADD BYTE PTR DS:[EAX],AL
00401178 0000 ADD BYTE PTR DS:[EAX],AL
0040117A 0000 ADD BYTE PTR DS:[EAX],AL
0040117C 3000 XOR BYTE PTR DS:[EAX],AL
bc++
0040163C $ /EB 10 JMP SHORT BCLOCK.0040164E
0040163E |66 DB 66 ; CHAR 'f'
0040163F |62 DB 62 ; CHAR 'b'
00401640 |3A DB 3A ; CHAR ':'
00401641 |43 DB 43 ; CHAR 'C'
00401642 |2B DB 2B ; CHAR '+'
00401643 |2B DB 2B ; CHAR '+'
00401644 |48 DB 48 ; CHAR 'H'
00401645 |4F DB 4F ; CHAR 'O'
00401646 |4F DB 4F ; CHAR 'O'
00401647 |4B DB 4B ; CHAR 'K'
00401648 |90 NOP
00401649 |E9 DB E9
0040164A . |98E04E00 DD OFFSET BCLOCK.___CPPdebugHook
0040164E \A1 8BE04E00 MOV EAX,DWORD PTR DS:[4EE08B]
00401653 . C1E0 02 SHL EAX,2
00401656 . A3 8FE04E00 MOV DWORD PTR DS:[4EE08F],EAX
0040165B . 52 PUSH EDX
0040165C . 6A 00 PUSH 0 ; /pModule = NULL
0040165E . E8 DFBC0E00 CALL JMP.KERNEL32.GetModuleHandleA ; \GetModuleHandleA
00401663 . 8BD0 MOV EDX,EAX
dasm:
00401000 /$ 6A 00 PUSH 0 ; /pModule = NULL
00401002 |. E8 C50A0000 CALL JMP.KERNEL32.GetModuleHandleA ; \GetModuleHandleA
00401007 |. A3 0C354000 MOV DWORD PTR DS:[40350C],EAX
0040100C |. E8 B50A0000 CALL JMP.KERNEL32.GetCommandLineA ; [GetCommandLineA
00401011 |. A3 10354000 MOV DWORD PTR DS:[403510],EAX
00401016 |. 6A 0A PUSH 0A ; /Arg4 = 0000000A
00401018 |. FF35 10354000 PUSH DWORD PTR DS:[403510] ; |Arg3 = 00000000
0040101E |. 6A 00 PUSH 0 ; |Arg2 = 00000000
00401020 |. FF35 0C354000 PUSH DWORD PTR DS:[40350C] ; |Arg1 = 00000000
七、常用資源 .國內(nèi)外有很多著名的破解站點,比如看雪學院?!都用芘c解密》一書,可參考: