Board logo

主題: [求助] [求助]請問要怎麼還原exe原始碼?! [打印本頁]

發表人: fishwater    時間: 2005-11-15 11:32 PM     主題: [求助]請問要怎麼還原exe原始碼?!

請問有那位大大知道怎麼把已做好的 *.exe file還原成原始碼嗎?!
有程式或方法可以還原嗎?!我想修改一下他的語法來符合我的需求~

前提是...我不知道他原本是用什麼語言寫的
這個程式是在DOS下執行的可以修改BIOS裡面的值

不知道那位比較有經驗的大大可以提供一些意見或是方法?!
謝謝!!
發表人: 一秒鐘幾十萬上下    時間: 2005-11-15 11:43 PM

去對岸的論壇看看吧
對岸的同胞這方面很強滴
專門做Reverse Re-engineering
把人家的軟體做反相工程 得到人家的source code
然後換個logo 拿到市場賣
實在是令人不齒阿

對岸Copy實在強
發表人: AGC    時間: 2005-11-16 12:07 AM

EXE檔最終只可還原成組合語言,要解BIOS不簡單哦,它有壓縮過的,你要逆向工程,第一步先要知BIOS是用什麼方式壓的(這如同以EXE格式的壓縮檔一樣)。
再來就是反組譯了,用世界目前最強的 IDA PRO即可。
當然,前提是你要會組合語言,光學過寫過還不行,一定要很熟才行,而且對硬體IO也要在行,不然.....
若是只是改LOGO,通常原廠就有程式可用了......
逆向工程...這年頭沒人想碰了.....
發表人: fishwater    時間: 2005-11-16 08:55 AM


引用:
AGC寫到:
EXE檔最終只可還原成組合語言,要解BIOS不簡單哦,它有壓縮過的,你要逆向工程,第一步先要知BIOS是用什麼方式壓的(這如同以EXE格式的壓縮檔一樣)。
再來就是反組譯了,用世界目前最強的 IDA PRO即可。
當然,前提是你要會組合語言,光學過寫過還不行,一定要很熟才行,而且對硬體IO也要在行,不然.....
若是只是改LOGO,通常原廠就有程式可用了......
逆向工程...這年頭沒人想碰了.....



NoNo...這位大大把我想的太厲害嘞...我不是要去碰BIOS的原始碼...而是一個小程式可以填一些值回BIOS...不過你說的對,雖然沒完全解開,但用Ultra Edit稍微看一下,的確是很多IO阿啥的位置值,我只是想嘗試看看...因為那個程式沒法通過Y2K的考驗,想試著去修改看看能不能換種方式讓他過Y2K...所以才需要原始碼!!
發表人: AGC    時間: 2005-11-16 11:12 AM

一樣,都要反組譯才行。
找我提的那程式即可
發表人: fishwater    時間: 2005-11-16 10:47 PM


引用:
AGC寫到:
一樣,都要反組譯才行。
找我提的那程式即可


IDA Pro我是找到了啦!!問題是...就像很多人說的,無法完全解譯而且會把程式變長複雜了!
這到都是其次,可我找不到方法可以修改裡面的值,就是說假設原本是2D,我想改成3D之類的
卻沒辦法,似乎是唯讀那種...當然檔案我把唯讀拿掉了~~
畢竟我不是寫程式出身的,又比較笨拙吧,假如可以繼續給我建議和步驟,我會非常感激!!
發表人: AGC    時間: 2005-11-17 12:39 AM

先說一下 IDA PRO...在ED上有假檔,就是那個數百MB有鎖的檔(密碼說明檔也可同時找到)解開後,內容是空的。
OK回正題。
通常反組譯,輸出不要選原碼方式,會更難看下去,選以列表檔方式(就是有ADDR.值有 OP CODE及原碼)這樣比較好追(配合DEBUG工具交互參考),你先要用DEBUG(WIN下的DEBUG我不知要用什麼,但是你要追的程式是在DOS下RUN,就用MASM內的CV即可)RUN到你想要改的地方再用單步慢慢執行,看看出問題的大約在那裡,再把相關ADDR值記下,再由列表檔上找到同地方,然後看要如何改。
不過對從沒寫過的人,這可是很難,幾乎要你重頭學程設了,而且DOS下的程式有些經過壓縮過的(稱之包裝),變成在DEBUG上看到的位置值與反組譯出列表檔上的位置值不一樣,所以除非沒替代方案,不然就找功力強的人弄弄看了,我是不強,我有10多年沒碰過反組譯了,而且不寫程式有5,6年了....
發表人: fishwater    時間: 2005-11-17 01:57 PM


引用:
AGC寫到:
先說一下 IDA PRO...在ED上有假檔,就是那個數百MB有鎖的檔(密碼說明檔也可同時找到)解開後,內容是空的。
OK回正題。
通常反組譯,輸出不要選原碼方式,會更難看下去,選以列表檔方式(就是有ADDR.值有 OP CODE及原碼)這樣比較好追(配合DEBUG工具交互參考),你先要用DEBUG(WIN下的DEBUG我不知要用什麼,但是你要追的程式是在DOS下RUN,就用MASM內的CV即可)RUN到你想要改的地方再用單步慢慢執行,看看出問題的大約在那裡,再把相關ADDR值記下,再由列表檔上找到同地方,然後看要如何改。
不過對從沒寫過的人,這可是很難,幾乎要你重頭學程設了,而且DOS下的程式有些經過壓縮過的(稱之包裝),變成在DEBUG上看到的位置值與反組譯出列表檔上的位置值不一樣,所以除非沒替代方案,不然就找功力強的人弄弄看了,我是不強,我有10多年沒碰過反組譯了,而且不寫程式有5,6年了....


非常感謝你詳細的解說~~不過看來我找到的版本跟你說的好像不太一樣,因為你說的那些東西我一個也沒找到   
我找到的版本是IDA v4.8.0.847 win.
Anyway 還是非常感謝你耐心的教導!!我自己再試看看好嘞~
發表人: AGC    時間: 2005-11-17 06:20 PM

如果是DOS程式,用sourcer操作比較簡單,IDA PRO是內含多CPU,MPU的反組譯程式(連PPC都有),可能不合適一般人。MASM的CV是附在MASM內的,MS已免費開放了,可在其DDK光碟內找到。
祝好運了.....ooo




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0