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

反編譯混淆

發布時間: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進行保護還是比混淆有用點!

閱讀全文

與反編譯混淆相關的資料

熱點內容
PDF梗 瀏覽:796
怎麼去加密oppo 瀏覽:787
如何編譯pjsip 瀏覽:217
有沒有正規的加密軟體 瀏覽:181
怎麼才能使安卓手機不卡頓 瀏覽:589
阿里伺服器如何使用教程 瀏覽:397
怎麼防止微信加密 瀏覽:795
網路連接不上顯示加密是怎麼回事 瀏覽:331
25歲做程序員好嗎 瀏覽:505
程序員稱呼it 瀏覽:692
單片機的控制寄存器 瀏覽:977
sp在單片機 瀏覽:880
主力資金紅綠指標源碼 瀏覽:458
一般手機的伺服器地址 瀏覽:493
凱迪拉克atsl安全防盜系統未編程 瀏覽:257
伺服器上怎麼安裝net35 瀏覽:37
安卓這個字念什麼 瀏覽:500
eclipse安裝android插件 瀏覽:954
iPhone12所有配件都加密 瀏覽:63
陳修園pdf 瀏覽:1000