當前位置:首頁 » 編程軟體 » 反編譯程序員app

反編譯程序員app

發布時間: 2022-07-26 03:29:21

① 有哪些程序員必用的APP

知乎、CSDN都有APP客戶端,還有各種雲筆記類的APP也會安裝,還有一個用手機ssh遠程linux伺服器的APP,可能也有人用,名字叫做:ConnectBot,還有的會裝上終端模擬器、BusyBox。

② 反編譯軟體

http://soft.ttdown.com/SoftDown_45761.html
http://www.pediy.com
http://soft.ttdown.com/aspxerrorpath=/SoftView/SoftView_15990.html
http://secrecy.ayinfo.ha.cn/sort/152_1.htm
Corso 5.0 2003-6-14 16:40:46 ★★★ 198
·一個針對fox的反編譯東東,效果怎麼樣沒有測試過。有興趣的可以看看!...
軟體類別:反編譯軟體 運行環境:Win9x/NT/2000/XP/ 授權方式:免費版
DeDe 3.20.04 2003-5-25 11:40:16 ★★★ 834
·這個不用多說了,反編譯Delphi程序的最棒的軟體。她反編譯後的程序清晰明了,是反編譯D...
軟體類別:反編譯軟體 運行環境:Win9x/NT/2000/XP/ 授權方式:免費版
Decafe Pro V3.8 2003-5-25 11:37:46 ★★★ 316
·javaClass的反編譯軟體,可以把二進制的class文件全部反編譯成源代碼。...
軟體類別:反編譯軟體 運行環境:Win9x/NT/2000/XP/ 授權方式:免費版
isDcc v2.10 2003-5-25 11:36:46 ★★★ 241
·反編譯installshield腳本*.ins...
軟體類別:反編譯軟體 運行環境:Win9x/NT/2000/XP/ 授權方式:免費版
w32dasm 2003-5-23 14:25:51 ★★★★★ 3597
·這個軟體可以說是最經典的反編譯軟體了,雖然發布的很早,但是這么多年經過無數牛人的修改後增...
軟體類別:反編譯軟體 運行環境:Win9x/NT/2000/XP/ 授權方式:免費版

③ 求可正確解壓或反編譯安卓游戲數據包*.obb的軟體,不要跟我說改後輟成壓縮包,這樣裡面都是亂碼。我

這種數據包甚至根本就不是zip包,而是被加密過了的文件,必須要很厲害的程序員成功反編譯後才能提取裡面的文件,提取原理一般都是根據這個apk運行這個obb的編譯(解密)方式來反編譯,想破解這種絕對不會簡單,要不然作為開發商還怎麼賣游戲?
反編譯沒有工具,只有直接二進制打開文件,先找到並接入適當的文本編碼,再用TXT打開,在編輯接入點,再找到突破點,是一個包還是內有文件分區(多個文件包占據文件的前後文本部分)。反編譯是一步步來的,剛開始用TXT打開是基本全是亂碼,反之開發商也是這樣封裝文件的。最好的參考方式是看這個apk是怎麼讀取和運行這個obb。

④ 求java開發反編譯破解工具(DJ Java Decompiler)V3.12.12.99網盤資源

鏈接:

提取碼:6xkq

軟體名稱:java開發反編譯破解工具(DJJavaDecompiler)V3.12.12.99

語言:英文軟體

大小:7.81MB

類別:系統工具

介紹:這是一款實用的java開發反編譯破解工具,運行DJ.exe直接用,是破解的,已經綠化破解DJJavaDecompiler。

⑤ android反編譯apk的代碼怎麼運行起來

Android 是 .apk 文件 網上有反編譯的軟體 可以反編譯成源代碼,你可以去網上找找,我用的是 jd-gui-0.3.3 但是,一般來說 程序員在 開發完成後都會混淆打包,即使是反編譯出來,也會有很多 abcdefg,,,, 表示的亂碼 有的軟體 沒混淆 就可以得到源碼,但是這樣的軟體 一般都能在網上找到開源的相關的代碼 祝你成功 !

⑥ 如何防止程序員反編譯

Java從誕生以來,其基因就是開放精神,也正因此,其可以得到廣泛愛好者的支持和奉獻,最終很快發展壯大,以至於有今天之風光!但隨著java的應用領域越來越廣,特別是一些功能要發布到終端用戶手中(如Android開發的app),有時候,公司為了商業技術的保密考慮,不希望這裡面的一些核心代碼能夠被人破解(破解之後,甚至可以被簡單改改就發布出去,說嚴重點,就可能會擾亂公司的正常軟體的市場行為),這時候就要求這些java代碼不能夠被反編譯。

這里要先說一下反編譯的現象。因為java一直秉持著開放共享的理念,所以大家也都知道,我們一般共享一個自己寫的jar包時,同時會共享一個對應的source包。但這些依然與反編譯沒有什麼關系,但java的共享理念,不只是建議我們這樣做,而且它自己也在底層上「強迫」我們這么做!在java寫的.java文件後,使用javac編譯成class文件,在編譯的過程,不像C/C++或C#那樣編譯時進行加密或混淆,它是直接對其進行符號化、標記化的編譯處理,於是,也產生了一個逆向工程的問題:可以根據class文件反向解析成原來的java文件!這就是反編譯的由來。

但很多時候,有些公司出於如上述的原因考慮時,真的不希望自己寫的代碼被別人反編譯,尤其是那些收費的app或桌面軟體(甚至還有一些j2ee的wen項目)!這時候,防止反編譯就成了必然!但前面也說過了,因為開放理念的原因,class是可以被反編譯的,那現在有這樣的需求之後,有哪些方式可以做到防止反編譯呢?經過研究java源代碼並進行了一些技術實現(結果發現,以前都有人想到過,所以在對應章節的時候,我會貼出一些寫得比較細的文章,而我就簡單闡述一下,也算偷個懶吧),我總共整理出以下這幾種方式:

代碼混淆

這種方式的做法正如其名,是把代碼打亂,並摻入一些隨機或特殊的字元,讓代碼的可讀性大大降低,「曲線救國」似的達到所謂的加密。其實,其本質就是打亂代碼的順序、將各類符號(如類名、方法名、屬性名)進行隨機或亂命名,使其無意義,讓人讀代碼時很累,進而讓人乍一看,以為這些代碼是加過密的!

由其實現方式上可知,其實現原理只是擾亂正常的代碼可讀性,並不是真正的加密,如果一個人的耐心很好,依然可以理出整個程序在做什麼,更何況,一個應用中,其核心代碼才是人們想去了解的,所以大大縮小了代碼閱讀的范圍!

當然,這種方式的存在,而且還比較流行,其原因在於,基本能防範一些技術人員進行反編譯(比如說我,讓我破解一個混淆的代碼,我寧願自己重寫一個了)!而且其實現較為簡單,對項目的代碼又無開發上的侵入性。目前業界也有較多這類工具,有商用的,也有免費的,目前比較流行的免費的是:proguard(我現象臨時用的就是這個)。

上面說了,這種方式其實並不是真正加密代碼,其實代碼還是能夠被人反編譯(有人可能說,使用proguard中的optimize選項,可以從位元組流層面更改代碼,甚至可以讓JD這些反編譯軟體可以無法得到內容。說得有點道理,但有兩個問題:1、使用optimize對JDK及環境要求較高,容易造成混淆後的代碼無法正常運行;2、這種方式其實還是混淆,JD反編譯有點問題,可以有更強悍的工具,矛盾哲學在哪兒都是存在的^_^)。那如何能做到我的class代碼無法被人反編譯呢?那就需要我們下面的「加密class」!

加密class

在說加密class之前,我們要先了解一些java的基本概念,如:ClassLoader。做java的人已經或者以後會知道,java程序的運行,是類中的邏輯在JVM中運行,而類又是怎麼載入到JVM中的呢(JVM內幕之類的,不在本文中闡述,所以點到為止)?答案是:ClassLoader。JVM在啟動時是如何初始化整個環境的,有哪些ClassLoader及作用是什麼,大家可以自己問度娘,也不在本文中討論。

讓我們從最常見的代碼開始,揭開一下ClassLoader的一點點面紗!看下面的代碼:

Java代碼

  • publicclassDemo{

  • publicstaticvoidmain(String[]args){

  • System.out.println(「helloworld!」);

  • }

  • }

  • 上面這段代碼,大家都認識。但我要問的是:如果我們使用javac對其進行編譯,然後使用java使其運行(為什麼不在Eclipse中使用Runas功能呢?因為Eclipse幫我們封閉,從而簡化了太多東西,使我們忽略了太多的底層細節,只有從原始的操作上,我們才能看到本質),那麼,它是怎麼載入到JVM中的?答案是:通過AppClassLoader載入的(相關知識點可以參考:http://hxraid.iteye.com/blog/747625)!如果不相信的話,可以輸出一下System.out.println(Thread.currentThrea().getContextLoader());看看。

    那又有一個新的問題產生了:ClassLoader又是怎樣載入class的呢?其實,AppClassLoader繼承自java.lang.ClassLoader類,所以,基本操作都在這個類裡面,讓我們直接看下面這段核心代碼吧:



    看到這里,已經沒有必要再往下面看了(再往下就是native方法了,這是一個重大伏筆哦),我們要做的手腳就在這里!

    手腳怎麼做呢?很簡單,上面的代碼邏輯告訴我們,ClassLoader只是拿到class文件中的內容byte[],然後交給JVM初始化!於是我們的邏輯就簡單了:只要在交給JVM時是正確的class文件就行了,在這之前是什麼樣子無所謂!所以,我們的加密的整個邏輯就是:

  • 在編譯代碼時(如使用ant或maven),使用插件將代碼進行加密(加密方式自己選),將class文件裡面的內容讀取成byte[],然後進行加密後再寫回到class文件(這時候class文件裡面的內容不是標準的class,無法被反編譯了)

  • 在啟動項目代碼時,指定使用我們自定義的ClassLoader就行了,而自定義的部分,主要就是在這里做解密工作!

  • 如此,搞定!以上的做法比較完整的闡述,可以仔細閱讀一下這篇文章:https://www.ddtsoft.com/#developerworks/cn/java/l-secureclass/文章中的介紹。

    通過這個方法貌似可以解決代碼反編譯的問題了!錯!這里有一個巨大的坑!因為我們自定義的ClassLoader是不能加密的,要不然JVM不認識,就全歇菜了!如果我來反編譯,呵呵,我只要反編譯一下這個自定義的ClassLoader,然後把裡面解密後的內容寫到指定的文件中保存下來,再把這個加了邏輯的自定義ClassLoader放回去運行,你猜結果會怎樣?沒錯,你會想死!因為你好不容易想出來的加密演算法,結果人家根本不需要破解,直接就繞過去了!

    現在,讓我們總結一下這個方法的優缺點:實現方式簡單有效,同時對代碼幾乎沒有侵入性,不影響正常開發與發布。缺點也很明顯,就是很容易被人破解!

    當然啦,關於缺點問題,你也可以這么干:先對所有代碼進行混淆、再進行加密,保證:1、不容易找到我們自定義的那個ClassLoader;2、就算找到了,破解了,代碼可讀性還是很差,讓你看得吐血!(有一篇文章,我覺得寫得不錯,大家可以看一看:http://www.scjgcj.com/#blog/851544)

    嗯,我覺得這個方法很好,我自己也差點被這個想法感動了,但是,作為一個嚴謹的程序員,我真的不願意留下一個隱患在這里!所以,我繼續思索!

    高級加密class

    前面我們說過有個伏筆來著,還記得吧?沒錯,就是那個native!native定義的方法是什麼方法?就是我們傳說中的JNI調用!前面介紹過的有一篇文章中提到過,其實jvm的真實身份並不是java,而是c++寫的jvm.dll(windows版本下),java與dll文件的調用就是通過JNI實現的!於是,我們就可以這樣想:JNI可以調用第三方語言的類庫,那麼,我們可不可以把解密與裝載使用第三方語言寫(如C++,因為它們生成的庫是不好反編譯的),這樣它可以把解密出來的class內容直接調jvm.dll的載入介面進行初始化成class,再返回給我們的ClassLoader?這樣,我們自定義的ClassLoader只要使用JNI調用這個第三方語言寫的組件,整個解密過程,都在黑盒中進行,別人就無從破解了!

    嗯,這個方法真的很不錯的!但也有兩個小問題:1.使用第三方語言寫,得會第三方語言,我說的會,是指很溜!2.對於不同的操作系統,甚至同一操作系統不同的版本,都可能要有差異化的代碼生成對應環境下的組件(如window下是exe,linux是so等)!如果你不在乎這兩個問題,我覺得,這個方式真的挺不錯的。但對於我來說,我的信條是,越復雜的方式越容易出錯!我個人比較崇尚簡潔的美,所以,這個方法我不會輕易使用!

    對了,如果大家覺得這個方法還算可行的話,可以推薦一個我無意中看到的東西給大家看看(我都沒有用過的):jinstall,

    更改JVM

    看到這個標題,我想你可能會震驚。是的,你沒看錯,做為一個程序員,是應該要具有懷疑一切、敢想敢做的信念。如果你有意留心的話,你會發現JVM版本在業界其實也有好幾個版本的,如:Sun公司的、IBM的、Apache的、Google的……

    所以,不要阻礙自己的想像力,現在沒有這個能力,並不代表不可能。所以,我想到,如果我把jvm改了,在裡面對載入的類進行解密,那不就可以了嗎?我在設計構思過程中,突然發現:人老了就是容易糊塗!前面使用第三方語言實現解密的兩個問題,正好也是更改JVM要面對的兩個問題,而且還有一個更大的問題:這個JVM就得跟著這個項目到處走啊!

⑦ android可以把.akp文件反編譯成源代碼嗎 新手求教

Android 是 .apk 文件
網上有反編譯的軟體 可以反編譯成源代碼,你可以去網上找找,我用的是 jd-gui-0.3.3
但是,一般來說 程序員在 開發完成後都會混淆打包,即使是反編譯出來,也會有很多 abcdefg,,,, 表示的亂碼
有的軟體 沒混淆 就可以得到源碼,但是這樣的軟體 一般都能在網上找到開源的相關的代碼
祝你成功 !

⑧ 程序員必裝的APP推薦

目前國內第一個人工智慧方面的運維APP,prof.wang。身邊的朋友都有安裝,建議安裝一下。

⑨ Android程序反編譯後為什麼不能部署在模擬器上呢

classes.dex是java源碼編譯後生成的java位元組碼文件。但由於Android使用的dalvik虛擬機與標準的java虛擬機是不兼容的,dex文件與class文件相比,不論是文件結構還是opcode都不一樣。目前常見的java反編譯工具都不能處理dex文件。http://www.ijiami.cn/newsInfo?id=281&v=3

Android模擬器中提供了一個dex文件的反編譯工具,dexmp。用法為首先啟動Android模擬器,把要查看的dex文件用adb push上傳的模擬器中,然後通過adb shell登錄,找到要查看的dex文件,執行dexmp xxx.dex。但是這樣得到的結果,其可讀性是極差的。

熱點內容
普通火車wifi密碼多少 發布:2025-02-06 03:04:20 瀏覽:436
可編程監控 發布:2025-02-06 03:03:33 瀏覽:645
c語言取隨機數 發布:2025-02-06 02:46:57 瀏覽:863
uc緩存的視頻卡住 發布:2025-02-06 02:17:05 瀏覽:144
解壓同學介紹 發布:2025-02-06 02:13:10 瀏覽:776
icsftp 發布:2025-02-06 02:12:59 瀏覽:325
ftp跨域上傳文件 發布:2025-02-06 02:09:22 瀏覽:822
非遞歸全排列演算法 發布:2025-02-06 02:06:45 瀏覽:551
vs反編譯dll 發布:2025-02-06 02:06:00 瀏覽:584
ubuntu設置ftp許可權 發布:2025-02-06 01:54:07 瀏覽:599