已經(jīng)編譯的dll內(nèi)容可以提取嗎 怎樣在C#中引入C 編譯的DLL文件的類定義?
怎樣在C#中引入C 編譯的DLL文件的類定義?c編寫(xiě)的成分類定義的dll不能真接在c#中內(nèi)部函數(shù),假如要全局函數(shù)類中方法,也可以找到對(duì)應(yīng)的函數(shù)入口地址,通過(guò)P/Invoke也可以動(dòng)態(tài)創(chuàng)建。但要是要想
怎樣在C#中引入C 編譯的DLL文件的類定義?
c編寫(xiě)的成分類定義的dll不能真接在c#中內(nèi)部函數(shù),假如要全局函數(shù)類中方法,也可以找到對(duì)應(yīng)的函數(shù)入口地址,通過(guò)P/Invoke也可以動(dòng)態(tài)創(chuàng)建。
但要是要想創(chuàng)建家族這個(gè)類的對(duì)象,就不需要?jiǎng)?chuàng)建戰(zhàn)隊(duì)一個(gè)托管項(xiàng)目,c/CLR,在里面不需要將非托管中心的類轉(zhuǎn)換成托管檔案類。后再使用的時(shí)候直接全局函數(shù)托管檔案類的dll就行。
dll文件如何反匯編成源碼,C 語(yǔ)言編寫(xiě)?
即使是未代碼編譯成機(jī)器語(yǔ)言的語(yǔ)言像java,不然的話想c/c等編譯程序進(jìn)去的目標(biāo)碼沒(méi)有辦法加殼成匯編,欄里點(diǎn)源碼簡(jiǎn)直是不可能的。既然如此dllc語(yǔ)言程序者就沒(méi)公開(kāi)的源碼,那肯定是有商業(yè)目的或其他原因,如果不是要學(xué)習(xí)或在自己的程序中建議使用,建議還是找開(kāi)源的替代品吧!
dll文件怎么打開(kāi)編輯修改DLL文件怎么反編譯?
去下載并壓縮包.NETReflector,下面可以下載為黃色7.3.0.18版本;(注:此為英文版,百度有漢化版去下載)
鏈接:_uOdn3wTQ7e-w密碼:rlm87
運(yùn)行“Reflector.exe”文件,可中,選擇.net framework版本;這個(gè)版本的Reflector只支持什么到.net的4.0,如需更高版本,可生級(jí),或百度直接下載更高版本。
你選擇.net framework版本后,可以看見(jiàn)如下頁(yè)面,左側(cè)工作欄為.net一些基礎(chǔ)類庫(kù),對(duì)應(yīng)的是上一部下周的.net版本。
再打開(kāi)要反匯編的DLL文件,工作欄:File-gtOpenAssembly,你選文件,或:ctrlO;你選擇必須反匯編的DLL文件
選擇好DLL文件后,左側(cè)工作欄就會(huì)出現(xiàn)您選擇的DLL文件。展開(kāi)可以看見(jiàn)DLL類庫(kù)里面的所有類了。
選擇兩個(gè)是需要欄里點(diǎn)的類,發(fā)起就看的到具體詳細(xì)的方法,直接點(diǎn)擊方法,方法的詳細(xì)內(nèi)容就會(huì)呈現(xiàn)在右側(cè)的工作區(qū)域。
請(qǐng)教,如何反編譯dll文件?
dll是二進(jìn)制代碼,只肯定java代碼為匯編;
但是,從原理上絕對(duì)這個(gè)可以,任何東西大都可逆的(除開(kāi)時(shí)間,愛(ài)因斯坦就趁機(jī)證明過(guò)),可是加殼的亢信息(符號(hào)及表達(dá)是不可逆的損傷的),也即程序編譯是多對(duì)一,即多源碼可編譯程序成同一機(jī)器碼,而兩機(jī)器肯定不會(huì)窮盡所有很可能的源碼(理論上可實(shí)現(xiàn)程序,但不可能做到),但目前的反編譯的軟件java代碼成的源碼可讀性太差。