ethercom(etherscan官網(wǎng))
大家好,小訊來為大家解答以上的問題。ethercom,etherscan官網(wǎng)這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!
1、級,修改程序,用ultraedit等工具修改exe文件,稱暴力破解,簡稱爆破中級,追出軟件的注冊碼高級,寫出注冊機先說這爆破。
2、所謂爆破,就是指通過修改可執(zhí)行文件的源文件,來達到相應的目的。
3、你不明白?呵呵,舉個例子好了,比如說某共享軟件,它比較用戶輸入的注冊碼,如果用戶輸入的,跟它通過用戶名(或其它)算出來的注冊碼相等的話(也就是說用戶輸入的注冊碼正確了),那么它就會跳到注冊成功的地方去,否則就跳到出錯的地方去。
4、明白過來了吧,我們只要找到這個跳轉(zhuǎn)指令,把它修改為我們需要的"造型",這樣,我們是不是就可以為所欲為了?(某軟件雙手放在胸口,你要干嘛?)常見的修改方法有兩種,我給你舉例說明:no.1在某軟件中,這樣來進行注冊:00451239CALL00405E02(關(guān)鍵CALL,用來判斷用戶輸入的注冊碼是否正確)0045123DJZ004572E6(!!!<――此為關(guān)鍵跳轉(zhuǎn),如果用戶輸入的注冊碼正確,就跳向成功處,即004572E6處)0045XXXXYYYYYYYYYYXXXXXXXXYYYYYYYYYYXXXXXXXXYYYYYYYYYYXXXXXXXX執(zhí)行到此處,就提示用戶注冊失敗提示用戶注冊碼不正確等相關(guān)信息004572E6<――(注冊成功處!!!)提示用戶注冊成功等相關(guān)信息呵呵,看明白了嗎?沒有的話,我來給你講一下。
5、在軟件執(zhí)行到00451239處的時候,CALL置0045E02處來進行注冊碼判斷。
6、接著回來后就來一個跳轉(zhuǎn)語句,即如果用戶輸入的注冊碼正確就跳到004572E6處,跳到此處,就算是注冊成功了。
7、如果用戶輸入的注冊碼不正確的話,那么就不會在0045123D處進行跳轉(zhuǎn),而一直執(zhí)行下去。
8、在下面等它的,是注冊失敗部分。
9、想明白了嗎?嘿嘿沒錯,我們只要把那個關(guān)鍵跳轉(zhuǎn)JZ給改為JNZ(如果用戶輸入的注冊碼錯誤,就注冊成功,輸入正確則注冊失敗)。
10、當然你也可以將JNZ修改為Jmp,這樣的話,你輸入的注冊碼無論正確與否。
11、都可以注冊成功。
12、no.2我們再來講一下另外的一種情況:00451239CALL00405E02(關(guān)鍵CALL,用來判斷用戶輸入的注冊碼是否正確)0045123DJNZ004572E6(!!!<――此為關(guān)鍵跳轉(zhuǎn),如果用戶輸入的注冊碼不正確,就跳向失敗處,即004572E6處)0045XXXXYYYYYYYYYYXXXXXXXXYYYYYYYYYYXXXXXXXXYYYYYYYYYYXXXXXXXX執(zhí)行到此處,就提示用戶注冊成功提示用戶注冊成功等相關(guān)信息004572E6<――(注冊失敗處!!!)提示用戶注冊碼不正確等相關(guān)信息這次我相信,并且深信不疑。
13、你一定明白了。
14、我還是不明白倒你一定看出跟第一種情況不同的地方了吧。
15、沒錯!它與第一種不同的,就是第一種情況是如果注冊碼正確,就跳到注冊成功處,如果沒有跳走,就會執(zhí)行到失敗處。
16、而這一種情況則是如果注冊碼不正確,就跳到注冊失敗處,否則將執(zhí)行到注冊成功處。
17、這種情況的修改,除了把JNZ改為JZ外,還可以將其改為Nop,Nop這個指令沒有任何意義,將該條指令修改為Nop后,便可隨意輸入注冊碼來進行注冊了。
18、原理以經(jīng)給你講了,下面我們再來講一下具體的修改法吧。
19、(我假設(shè)你以經(jīng)明白了我所說的工具的使用方法)先說一下虛擬地址和偏移量轉(zhuǎn)換的問題,在SoftICE和W32Dasm下顯示的地址值是所謂的內(nèi)存地址(memoryoffset),或稱之為虛擬地址(VirualAddress,VA)。
20、而十六進制工具里,如:Hiew、HexWorkshop等顯示的地址就是文件地址,稱之為偏移量(Fileoffset)或物理地址(RAWoffset)。
21、所以當我們要通過那些十六進制工具來對可執(zhí)行文件中的相應指令進行修改的話,先要找到它的Fileoffset。
22、我們沒有必要去使用那些專門的轉(zhuǎn)換工具,在W32Dasm中就有這個功能,比如說你W32Dasm中來到0045123D處,在W32Dasm界面下方的狀態(tài)欄中就會出現(xiàn)該條指令的虛擬地址和偏移地址,即@:0045123D@offset0005063Dh后面的這個0005063Dh就是相應的偏移地址。
23、我們得到該地址后,便可用UltraEdit等十六進制工具來對可執(zhí)行文件進行修改了。
24、比如使用UltraEdit,你先用UltraEdit打開該可執(zhí)行文件,然后按Ctrl+G,接著輸入你得到的偏移地址,就可以來到其相應的機器碼處。
25、再給你講一下機器碼,所謂的機器碼。
26、就是你看到的那些個十六進制數(shù)據(jù)了。
27、還記的它們與匯編指令是一一對應的嗎?以下這幾個是爆破時要用到的,其它的如果感興趣,可自行查看相關(guān)資料:JZ=74;JNZ=75;JMP=EB;Nop=90爆破的時候,只要對以上機器碼進行相應的修改就行了,比如第一種情況的時候,可以將74修改為EB,即將JZ修改為JMP。
28、而第二種情況,責需將75修改為90,即將JNZ修改為Nop。
29、由于本章只講原理,具體一點的。
30、如怎樣找到關(guān)鍵跳轉(zhuǎn)等,我們在下一章中再講。
31、(一個磚頭飛了上來!嘿嘿,這次被俺接到了)上邊講了爆破的原理,你需要明白的是。
32、爆破只是你學習Crack的開始,是很簡單的手段。
33、剛?cè)腴T的時候可以玩玩兒,但希望你不要就此不前?。ê俸伲僬f了。
34、人家的軟件中不是都說了嘛,不準對其進行逆向修改。
35、你動了人家的身子,怎么能不買帳呢?)偶就不喜歡爆破,做不出注冊機也要找出注冊碼。
36、否則我就不會去注冊這個軟件,既然想不掏錢,就要靠你自己的本事。
37、(等以后我有錢了,會考慮去注冊那些優(yōu)秀的共享軟件的)。
38、所以,從某種意義上來說,我是一個正人君子.其實要找到注冊碼并不是一件多么難的事,我是指你所針對的軟件不太那個的時候不過你無需懼怕。
39、剛才我們說爆破的時候不提到過關(guān)鍵CALL嗎?一般情況下,這個關(guān)鍵CALL就是對兩個注冊碼(一個是軟件自身通過你的注冊名或機器什么的計算出來的正確的注冊碼,令一個就是你輸入的錯誤的注冊碼)進行比較。
40、我前邊提到過,CALL之前一般會把所用到的數(shù)據(jù)先放到一個地方,CALL過去的時候再從這些地方把先前放入的數(shù)據(jù)取出來,進行相應的處理。
41、這個關(guān)鍵CALL也是這樣,在CALL之前,一般會把那兩個注冊碼放到堆棧或某個寄存器中。
42、嘿嘿,我們只要在調(diào)試器中,單步執(zhí)行到該CALL,在未進去之前通過CALL之前的指令判斷其將正確的和不正確的注冊碼放到哪里了。
43、然后再用相應指令進行查看就成了,我說過不難的。
44、下面列出兩個最常見的情況(可參考相關(guān)教程):no.1moveax[]這里可以是地址,也可以是其它寄存器movedx[]同上,該條指令也可以是popedxcall00??????關(guān)鍵calltesteaxeaxjz(jnz)或jne(je)關(guān)鍵跳轉(zhuǎn)看明白了吧,在關(guān)鍵CALL之前,軟件會把兩個注冊碼分別放入eax和edx中,你只要在CALL處下deax或dedx就能看到正確的注冊碼了。
45、no.2moveax[]這里可以是地址,也可以是其它寄存器movedx[]同上,該條指令也可以是popedxcall00??????關(guān)鍵calljne(je)關(guān)鍵跳轉(zhuǎn)以上兩種情況最為常見,而那些個不太常見的情況,我們這里就不再提了。
46、到下下一章的時候,我會給你講相關(guān)方法的關(guān)于查找軟件注冊碼的部分,就到這里。
47、具體內(nèi)容,下下一章咱們再說。
48、(不是說了嗎?我以經(jīng)可以接到你的磚頭了,干嘛還要丟呢?)最后,再來說最后的所謂的高級階段,如果你相信自己。
49、并且熱愛Crack,那么你一定會熬到這個階段的,只是時間因人而異。
50、其實分析軟件的算法,是有好多技巧在里面的。
51、呵呵,最起碼我剛開始的時候就摸不著頭腦,那么多CALL,每個看起來,都很重要,都追一遍?結(jié)果連好多API都被追了進去。
52、等你自己真正用心分析了一個軟件的算法,并寫出了注冊機后。
53、你就會明白其中的道理了。
54、 展開。
本文到此分享完畢,希望對大家有所幫助。
免責聲明:本文為轉(zhuǎn)載,非本網(wǎng)原創(chuàng)內(nèi)容,不代表本網(wǎng)觀點。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。