反編譯閱讀
❶ C#寫出來的代碼,反編譯之後能看到源代碼,怎麼樣防止別人的反編譯。求高手指點
C#代碼最終會被編譯為 IL,對 IL 進行逆向工程比較簡單,因此一種辦法是向第三方購買一個混淆器(obfuscator),能通過打亂程序集元數據中的私有符合名稱,讓人難以閱讀。但本質上,這種保護是有限的,只是難以閱讀,而不能從根本上避免。
另一種辦法是,在非託管模塊中實現你比較重要的演算法,然後通過 CLR 的平台互操作,來使託管代碼調用它,這樣程序仍然能夠正常工作,但對非託管的本地代碼進行反編譯,就很困難。
一般來說,除非你的這部分代碼非常重要,或涉及核心機密,才需要考慮防止反編譯的做法。一般來說,混淆器也足夠了。
❷ 請問如何做電子書
用雲展網,在線免費一鍵轉換製作翻頁電子書,簡單!
題主只需要自己排版設計好PDF,上傳PDF就能轉換成3D翻頁電子書/電子雜志/電子畫冊等。可通過二維碼掃描、微信分享、QQ分享等,讀者無需登錄賬號即可通過手機、平板和電腦閱讀到你的電子書。
說到這里,你是不是覺得雲展網不僅是一個方便的pdf製作電子畫冊平台?還能美化電子畫冊,利於分享等
❸ 不是說程序都是反編譯的嗎那病毒等程序的源代碼別人是如何知道的
反編譯只是讓其他人不容易獲得源代碼而已,理論上只要能執行的程序都可以通過機器碼變為匯編代碼,大家可以研究其代碼。
由於病毒程序一般較小,代碼被反編譯後更容易閱讀。
如果把windowsXP反編譯,閱讀的工作量將是一個天文數字!
❹ 如何反編譯PDF文檔以方便進行文檔操作
有三種方法——————
1、對於打字文件製作的PDF文件,福昕PDF閱讀器就可以把它另存為TXT文本;
2、對於掃描文件製作的PDF文件,用漢王PDF OCR8.1把它識別為TXT文件;
3、用福昕PDF編輯器處理,但個人覺得那個技術不容易掌握。
❺ java反編譯工具有什麼作用
和javap功能差不多,就是進行反編譯~把.class文件反編譯成原來的JAVA代碼~
❻ exe文件能不能反編譯
本身就是不能反編譯的,請看:程序:#includestdio.hvoidmain()
和程序:#includestdio.hvoidmain()
反匯編各得5071行,沒有區分。如果編譯時用了/O2,再反匯編回來,得到行數不同。要想反編譯成原文件,明顯不可能。除非開發1個新編譯器,把源程序用註解方式寫進去,就可以反編譯回來。
❼ java反編譯
如今JAVA語言在全世界范圍正如火如荼般的流行,它廣范地應用在INTERNET的資料庫、多媒體、CGI、及動態網頁的製作方面。1999年在美國對JAVA程序員的需求量首次超過C++!
作者因最近分析一些JAVA程序,對JAVA的反編譯進行了一番了解,下面將我所了解的情況作以下介紹,希望對JAVA愛好者有所幫助。
JAVA是採用一種稱做「位元組編碼」的程序結構,分為小程序(嵌入到HTML文件中)和應用程序(直接在命令狀態下執行)兩種類型。無論哪種結構,一旦用JAVAC 命令編譯後,均變成後綴為CLASS的同名可執行文件。這種文件是不可閱讀的代碼。
經查閱了SUN公司的JDK(JDK1.1.3)文檔資料後,我找到了一個據稱是可反編譯JAVA的JAVAP文件(EXE),這個文件位於\JDK\BIN\ 下面,經按說明使用後,感到失望,原來這個「反編譯」僅可反編譯出JAVA程序的數據區(定義)、若干方法和類的引用等。
這里我用了一個簡單例子來說明問題。
JAVA的源程序hello_java.java如下:
import java.applet.*;
import java.awt.*;
public class hello_java extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello Java!\n",20,20);
}
}
經用反編譯命令:javap -c -package -public -private hello_java hello.java
得到的反編譯結果(hello.java)如下:(有關javap命令的選擇參數請見其使用說明,這里-c表示選擇了反編譯)
Compiled from hello_java.java
public synchronized class hello_java extends java.applet.Applet
/* ACC_SUPER bit set */
{
public void paint(java.awt.Graphics);
public hello_java();
Method void paint(java.awt.Graphics)
0 aload_1
1 ldc #1
3 bipush 20
5 bipush 20
7 invokevirtual #6
10 return
Method hello_java()
0 aload_0
1 invokespecial #5 ()V>
4 return
}