導航:首頁 > 源碼編譯 > 反編譯混淆

反編譯混淆

發布時間:2022-01-11 20:43:26

『壹』 混淆的class文件怎麼進行反編譯

一般情況下java應用的開發者為了保護代碼不被別人抄襲,在生成class文件的時候都java文件進行了混淆,這種class文件用反編譯工具得到的結果很難看懂,並且不能進行編譯。
從研究的角度,淺析如何讀懂這種反編譯過來的文件。
例子一:賦值
反編譯過來的代碼如下:
Node node;
Node node1 = _$3.getChildNodes().item(0);
node1;
node1;
JVM INSTR swap ;
node;
getChildNodes();
0;
item();
getChildNodes();
0;
item();
getNodeValue();
String s;
s;
原始語句:
Node node;
Node node1 = currDocument.getChildNodes().item(0);
node = node1;
String s = node.getChildNodes().item(0).getChildNodes().item(0).getNodeValue();
註解:
JVM INSTR swap ; //賦值語句
練習:
String s1;
String s8 = node.getChildNodes().item(1).getChildNodes().item(0).getNodeValue();
s8;
s8;
JVM INSTR swap ;
s1;
10;
Integer.parseInt();
int i;
i;

例子二:不帶參數創建對象
反編譯過來的代碼如下:
JVM INSTR new #244 ;
JVM INSTR p ;
JVM INSTR swap ;
CrossTable();
CrossTable crosstable;
crosstable;
原始語句:
CrossTable crosstable = new CrossTable();
註解:
練習:
JVM INSTR new #246 ;
JVM INSTR p ;
JVM INSTR swap ;
Database();
Object obj;
obj;
例子三:帶參數創建對象
反編譯過來的代碼如下:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s2);
StringBuffer();
s.substring(j, i);
append();
s6;
append();
toString();
s2;

原始語句:
s2 = (new StringBuffer(String.valueOf(s2))).append(s.substring(j, i)).append(s6).toString();
註解:
此語句實際上是:s2 += s.substring(j, i) + s6;
練習:
例子四:for循環
反編譯過來的代碼如下:
int k = 0;
goto _L4
_L8:
...
k++;
_L4:
if(k < as.length) goto _L8; else goto _L7
原始語句:
for(int k=0;k < as.length;k++)
{
...
}
註解:
例子五:while循環
反編譯過來的代碼如下:
String s1 = "";
goto _L1
_L3:
JVM INSTR new #262 ;
JVM INSTR p ;
JVM INSTR swap ;
String.valueOf(s1);
StringBuffer();
_$2(resultset, s, l);
append();
toString();
s1;
_L1:
if(resultset.next()) goto _L3; else goto _L2
原始語句:
String s1 = "";
while(resultset.next())
{
s1 = s1 + resultSetToString(resultset, s, l);
}

『貳』 求助,誰能看懂混淆的反編譯後混淆的Java代碼

reactor主界面上就有幾個復選框,試一下全部打勾,然後點proctect,混淆後的Dll再用反編譯軟體看看其中的代碼,lz自然會知道結果。

『叄』 對已經混淆的android代碼,如何進行反編譯

android代碼混淆是指安卓開發者或者組織為了防止自己的產品敏感信息或者技術機密被人破解,而在生成apk文件的時候,通過設置一些替換規則,使java文件中指定的代碼類的名字或者成員名字變為沒有任何意義的字母,然後編譯成class文件的過程。

已經混淆過的android代碼反編譯出來的都是一些沒有任何意義的名字,是很難讀懂的。沒有好的辦法。

『肆』 求能反編譯已經混淆過apk的軟體

反編譯不一定要用軟體,

『伍』 net反編譯後發現代碼混淆了,求助

混淆的很少有反混淆的,混淆就是把原來自己設置的有含義或無含義的屬性方法修改成隨機的,他又不明白人的意思,反混淆跟混淆差不多,就是反混淆產生的欄位簡單點。你查找替換下不就行了

『陸』 Android源碼進行了混淆,怎麼通過反編譯查看

android代碼混淆是指安卓開發者或者組織為了防止自己的產品敏感信息或者技術機密被人破解,而在生成apk文件的時候,通過設置一些替換規則,使java文件中指定的代碼類的名字或者成員名字變為沒有任何意義的字母,然後編譯成class文件的過程。 已經混淆過的android代碼反編譯出來的都是一些沒有任何意義的名字,是很難讀懂的。沒有好的辦法。

『柒』 被混淆的jar包如何反編譯

暫時想到的只有將jar文件解壓,用反編譯工具反編譯相關類,修改,編譯成類替換原文件,再打包成。

『捌』 javacompile混淆器怎麼混淆後的class文件還是可以被反編譯出來呢求高手指點....

混淆的作用並不是使class文件不能被反編譯
混淆的作用是使反編譯的代碼更難讓人閱讀,比如一些計算金錢的敏感邏輯里有如下的代碼(新金額=舊金額*某個倍率):
double newMoney=oldMoney*rate;
如果這樣的代碼直接編譯成class文件,別人反編譯這個class文件就能很清楚的看到金錢的計算關系,混淆後代碼可能就變成這樣的了:
double a=b*c;
這樣的代碼別人即使反編譯了,也是很難看懂其中的邏輯關系的

『玖』 經過混淆的android安裝包,還有可能被反編譯么

有可能,但是還是很大的提高了閱讀難度,而且需要注意的是混淆並不會保護你圖片等資源,也就是除了代碼難以閱讀之外沒有其他幫助,只是增加破解者的難度時間,對其防止破解的作用意義不是很大。拿移動應用安全行業的第三方平台來說,在Android代碼混淆的基礎上,以源碼加殼保護、so庫核心代碼加殼保護、資源文件簽名保護、APK防二次打包保護等方面來對APK進行保護還是比混淆有用點!

閱讀全文

與反編譯混淆相關的資料

熱點內容
h5上傳圖片前壓縮 瀏覽:119
昆侖通泰觸摸屏怎麼編譯 瀏覽:379
程序員函數模塊 瀏覽:20
linuxgrep命令 瀏覽:63
變頻壓縮機不起 瀏覽:244
圍巾的諧音是什麼app 瀏覽:455
java2圖形設計 瀏覽:818
連續的批處理命令 瀏覽:713
安卓怎麼進美團 瀏覽:463
如何使用網頁伺服器 瀏覽:387
兒童學珠算好還是手指速演算法好 瀏覽:188
小紅書耳機解壓視頻 瀏覽:1000
華為手機主題app在哪裡找 瀏覽:926
安卓微信怎麼沒有炸彈 瀏覽:87
競彩app哪個正規 瀏覽:831
絕密文件夾鎖怎麼破解 瀏覽:31
程序員騷擾 瀏覽:385
個人伺服器還是雲主機劃算 瀏覽:43
linuxu盤啟動命令 瀏覽:747
低溶app是什麼 瀏覽:53