關於java加殼和程式碼混淆
在C中,進行,首要經過加殼的方法。所謂加殼,即是先將程式程式碼加密,然後用特定的程式載入器,將程式碼解密後載入進記憶體,這樣能夠在避免程式碼的反編譯,當然,有加殼東西,也有解殼東西,儘管不能100%避免crack,但仍然給程式碼增加一層有力的維護。
然而在Java中,維護程式碼是件很困難的工作,由於class檔案十分標準,很容易反編譯,且反編譯後的程式碼明晰可讀。常見的維護辦法是運用器,打亂class和function以及變數的姓名,能夠攪擾反編譯後的程式碼的可讀性。儘管簡略提高了程式碼的安全性,但還僅僅適當於未加殼的C程式。
java能夠加殼嗎?曾經我以為這是不能夠的,由於動態載入程式碼這樣的記憶體等級的操作,java無法做到,除非運用JNI(JavaNativeInterface),呼叫自個編寫的C程式碼,在C程式碼中完成動態載入java程式碼。可是,C如何載入java程式碼呢?這需要對JVM適當的知道。所以其時的我以為這是不能夠的。
然而,最近接觸的一些常識告訴我——java也能夠加殼!!
1.URLClassLoader。用URLClassLoader能夠在java程式的運轉時間,再將資料夾或許jar加入到classpath中,這個特性事實上即是動態載入。既然能夠動態載入class的資料夾或許jar,為何不能夠載入加密後的classes呢,將classes用自個的方法加密,在URLClassLoader呼叫時,運用自個的方法解密。不即是達到了加殼的目的了嗎?不過解密的程式碼放在何處是個疑問,即是說解殼器的程式碼暴露在外,仍是很風險的。
2.javassist。這實在是一個十分奇特的新技能,我是在學習Tapestry5時首次遇到這個包的,他能夠動態創立java位元組碼,乃至能夠修正你現已寫好的函式,比如你的getter和setter,僅僅簡略的讀取和賦值,你能夠在Runtime用他修正你的getter和setter,讓你的getter和setter每次呼叫時都能夠觸發某些程式碼。憑藉這項奇特的技能,必定能夠完成更強壯的動態載入,加殼也就有了能夠。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29588083/viewspace-1252438/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Flutter 程式碼混淆 混淆Dart程式碼FlutterDart
- Java程式碼混淆工具入門——Allatori~Java
- Jobfuscator:Java 原始碼混淆和保護Java原始碼
- 【程式碼混淆】react-native 程式碼混淆React
- 程式碼混淆工具ipaguard:如何使用ipaguard保護和混淆iOS應用程式程式碼iOS
- 關於軟體的程式碼混淆的產品對比與分析
- 關於用ASProtect v1.3加殼軟體的脫殼方法體會 (5千字)
- 小甜餅 --- 有關新版Asprotect加殼程式的脫殼的又一種思路 (798字)
- Java培訓分享5個常用Java程式碼混淆器Java
- 漫談混淆技術----從Citadel混淆殼說起
- 程式碼混淆的原理和方法詳解
- Android反編譯和程式碼混淆Android編譯
- 加殼技術探討-加殼時處理IAT
- ios加固,ios程式碼混淆,ios程式碼混淆工具, iOS原始碼混淆使用說明詳解iOS原始碼
- 關於Armadillo 1.8x-2.x的anti-debug&加殼原理初步探討和脫殼方法 (12千字)
- 關於AndroidStudio混淆配置Android
- Android程式碼混淆&元件化混淆方案Android元件化
- Krypton 0.5加殼程式脫殼及輸入表修復記
- 關於程式碼、麵包和自由
- 關於el表示式和java程式碼的2個問題,Java
- 5個常用Java程式碼混淆器 助你保護你的程式碼Java
- 鴻蒙程式碼配置混淆鴻蒙
- Android程式碼混淆Android
- iOS安全/程式碼混淆iOS
- 加殼技術--DRx解碼阻止除錯除錯
- 關於雙程式Armadillo標準殼的脫法
- .Net加混淆器的分析
- 基於多重替換方式的iOS程式碼混淆方案iOS
- Python程式碼混淆工具,Python原始碼保密、加密、混淆Python原始碼加密
- 脫殼----對用pecompact加殼的程式進行手動脫殼 (1千字)
- 一個新殼,附主程式和原始碼原始碼
- Android 配置 Ant 指令碼之程式碼混淆和優化Android指令碼優化
- 程式碼混淆與反混淆學習-第二彈
- powershell程式碼混淆繞過
- 前端程式碼安全與混淆前端
- iOS 初探程式碼混淆(OC)iOS
- 程式碼混淆的規則
- iOS逆向學習之五(加殼?脫殼?)iOS