|
論壇說明 |
歡迎您來到『史萊姆論壇』 ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』 |
|
主題工具 | 顯示模式 |
2004-01-10, 10:39 PM | #1 |
榮譽會員
|
一段win commander 5.1的smc破解程式碼
這個最好用的工具在0828出的新版5.1,前天我才知道,0day已經出來了,還是想自己還破一下~~~
還是aspack壓的,trw 的 pedump就可脫殼,文件的CRC校驗很煩,沒時間。事實上可以用smc搞定。 在殼中有一段rep movsd程式碼,向下不遠是個判斷是否解壓完畢的語句,在這之後讓他jmp到空地去(事實少的可憐,可以加一個段),程式碼如下: (機器正在瘋狂下載中,沒機會再改了) 0167:005CF5D0 60 PUSHA ;儲存暫存器 0167:005CF5D1 E800000000 CALL 005CF5D6 0167:005CF5D6 5D POP EBP 0167:005CF5D7 89E8 MOV EAX,EBP 0167:005CF5D9 2C36 SUB AL,36 ;取得資料區的首址。原來是把資料放前面,程式碼跟在後面,這樣不大好,最好順序換一下,然後add al, XX;另,最好是對eax操作,避免進位丟失。 0167:005CF5DB 89C6 MOV ESI,EAX 0167:005CF5DD 31C9 XOR ECX,ECX 0167:005CF5DF AC LODSB ;取長度 0167:005CF5E0 84C0 TEST AL,AL 0167:005CF5E2 740D JZ 005CF5F1 ;是否完畢 0167:005CF5E4 88C1 MOV CL,AL ;長度到cl, 255字元足夠補一段了~~~ 0167:005CF5E6 AD LODSD 0167:005CF5E7 89C7 MOV EDI,EAX ;取目標位址 0167:005CF5E9 AC LODSB 0167:005CF5EA AA STOSB 0167:005CF5EB FEC9 DEC CL 0167:005CF5ED 75FA JNZ 005CF5E9 ;之所以沒用rep movsb是因為非法,莫名其妙 0167:005CF5EF EBEE JMP SHORT 005CF5DF 0167:005CF5F1 61 POPA ;準備返回 0167:005CF5F2 6800800000 PUSH DWORD 8000 ;改跳轉處原有語句 0167:005CF5F7 E9B2FBFFFF JMP 005CF1AE ;跳回去這樣也可以,最好是用jmp ebp+XXXX這樣的相對尋址 0167:005CF5FC 0000 ADD [EAX],AL 0167:005CF5FE 0000 ADD [EAX],AL 要補的資料區這樣來定義,有通用性: 每個小節第一字元為長度,接下來四字元為要修改的位址,比如要改的004013c4就是C4 13 40 00;再下來就是改後的內容,長度由第一字元決定,一定要數對了~~~ 然後跟著下一段,最後以0為結束標誌。 大致如此,對它的CRC這樣解決: 拷貝wincmd32.exe為另一份,隨便起個名,比如WC.OLD~~~~ 破解時在createfilea前面是傳參數,讓eax指向你改過的路徑加wc.old就行了,這樣它就會去讀wc.old了,呵呵,真乖給你買糖吃。接下來就隨便了,改註冊名什麼的,只要空間夠用,任你怎麼作。 enjoy! |
送花文章: 3,
|
|
|
相似的主題 | ||||
主題 | 主題作者 | 討論區 | 回覆 | 最後發表 |
管理員的隨身工具包 | psac | 作業系統操作技術文件 | 0 | 2003-10-09 04:01 AM |
Windows Commander完全設置使用手冊 | psac | 作業系統操作技術文件 | 5 | 2003-07-02 11:47 PM |