① 什麼java反編譯工具最好用,要是連注釋也能編譯出來就最好了。
不可能,class文件本身都沒有注釋。你怎麼編譯,jd-gui雖好但是反編譯稱java文件前面會有一些垃圾的注釋,這些注釋都是行數 比如/* 1 *//* 2 */ 而且每個編譯出來的類都會有,無一例外。。
② 文件反編譯中的注釋有什麼作用
1.打開ILSpy軟體,點擊File , 打開,選擇所要反編譯的.exe文件,點擊確定。
2.選中要保存的反編譯項目名稱,點擊保存代碼。
5.注意,反編譯出來的dll,及窗體文件都是在每個文件夾下面的,且是每個dll對應一個,如下圖:
下面主要就反編譯中出現的一些錯誤做下說明:
A.對應上面的如果是dll反編譯出來的,如果是公司常用的dll,就可以直接把該項目中的文件夾刪除,然後把原有的dll添加引用即可;
B.在打開窗體設計時,多數情況下會出現以下錯誤:
雙擊錯誤即可跳轉到資源文件錯誤的代碼行中去,可以根據上面提示的行號進行查找,找到後注釋即可!
C.在處理完以上錯誤後,往窗體中添加控制項時可能會引發以下錯誤error CS1508:
解決方法:在解決方案資源管理器中找到對應的窗體如名為X,在這個窗體的附近會新生成一個X.resoures,選中,右鍵,從項目中排除,再編譯即可!如下圖:
③ Java class文件反編譯中的注釋有什麼作用
注釋的內容是java位元組碼,注釋掉是為了防止IDE等工具報語法錯誤。
出現這個現象的原因是反編譯失敗了,也就是說反編譯不出該方法的源碼,為了不讓用戶誤認為這是個空方法,直接將位元組碼顯示出來是個好主意,但是直接將位元組碼顯示出來,IDE等工具是會報語法錯誤的,這時候以注釋的形式來表現我覺得是最好的方式。
④ 我反編譯了一個APK程序,裡面void run() 是被注釋的代碼
這是因為這個方法比較長的原因,一般是反編譯不出來的,這些你看到的是dalvik位元組碼,如果你研究過這種位元組碼,可以人為的去反編譯成java代碼,這些就是java代碼對應的dalvik位元組碼形式
⑤ class文件反編譯中的注釋有什麼作用
反編譯class文件是為了獲取java源碼,一般是為了學習源碼或者查看源碼是否於新代碼相同,有時eclipse編譯後class文件並沒有更新過,還是舊的代碼,而你又不確定,此時反編譯查看代碼是否更新到最近的,我因為這個問題導致程序出錯過
⑥ 反編譯怎麼不能產生注釋
C++編譯器在編譯的時候 把無用的注釋跳過了
因為如果把這些信息帶上的話可執行代碼會變大
如果是java的話,反編譯了會有注釋的,因為java只是把源文件編譯成了位元組碼,同時注釋也編譯了,在運行的時候,會跳過注釋的
⑦ 反編譯工具能反編譯出注釋嗎
編譯的時候注釋會變成一個空格.你能把空格反編譯成什麼?
⑧ 你見過哪些奇趣的代碼注釋
我說一個注釋能起作用的。通過添加註釋,躲過安全軟體的檢查。大概在07年前後,SQL注入還比較常見,許多小網站用asp,學習了一些基本的攻防技術,也是在那個時候聽說了 @餘弦等巨巨。滲透的話肯定要用到asp木馬,海陽什麼的。asp這個東西功能全靠ActiveX,具體來講,比如Set wsh = server.CreateObject("wscript.shell")而當時基本上小網站都是虛擬主機,擁有的許可權也不過是傳上去自己的asp腳本而已。當時怎麼檢查是否被留下木馬了呢?主要就是去搜是否調用了這種比較危險的ActiveX(直接用正則匹配)。其中一個好像是叫雷客圖(其實主要是用來黑吃黑,找出別人留下的後門)。當然,asp木馬為了避免被檢查出來,會把敏感的組件名拼接起來。Set wsh = server.CreateObject("wscri"+"pt.shell")或者包一個函數Function CreateObj(str)Set CreateObj = server.CreateObject(str)End Function不過,查殺的人又不傻,直接把這兩種情況都當作危險行為了。(出現字元串拼接,或者括弧裡面的是變數而沒有引號)好,交代完背景,可以說那個有趣的注釋了。當時我只加了一行注釋就成功的躲過了檢查,FunctionCreateObj(str)Set CreateObj = server.CreateObject(str) '"""")End Function因為當時所有的檢查代碼,正則表達式都沒有設置模式,而VBS默認的是貪婪模式。所以用注釋里的括弧閉合前面的括弧,然後把引號放在兩個括弧中間。這樣就繞過了檢查。現在想想挺弱的,不過高中時候發現自己除了會做幾道物理題以外還能想出這種奇技淫巧還是挺得意的。