2012-07-16 440 views
0

我已經從互聯網上下載了一個apk文件,並使用dex2jarf工具對其進行了壓縮,因此它提供了編譯後的.classes文件,我通過反編譯器將其轉換爲.java文件,但它使我能夠以類似於a.java的方式正確使用類,b。 java的c.java這是很難我read.Can我通過apk文件同樣得到適當的類名稱,因爲它是在project.plz幫助使用 感謝無法讀取解壓縮classes.dex文件?

+0

可能取決於原始作者是否使用了proguard來混淆代碼。 – Stephan 2012-07-16 11:22:38

+0

那麼如何才能獲得實際的課程。 – user1528688 2012-07-16 11:29:30

+0

我非常懷疑它(但我不確定)。你知道,在使用混淆器時,確實要儘可能地使逆向工程變得困難。 – Stephan 2012-07-16 11:34:50

回答

1

什麼你正在努力實現被稱爲反混淆

希望保護自己的知識產權的程序員混淆他們的代碼,使他們更難以閱讀那些可能想要竊取/複製/剽竊他們辛勤工作的人。

混淆器用短的機器生成的替代品替換這些名稱。攻擊者不會看到對dontAllow()的調用,而會看到對()的調用。這使得在不訪問原始源代碼的情況下更難以直觀地理解這些功能的用途。

源:http://android-developers.blogspot.ie/2010/09/securing-android-lvl-applications.html

+1

由於計算機無法識別方法或類的目的,因此無法自動執行去混淆,並且需要人工交互。 – Robert 2012-07-16 11:36:33

0

沒有,如果他們被剝奪了收回標識符方式。彙編是一個有損過程,如將RAW圖像轉換爲低質量JPEG。沒有辦法從JPEG回到RAW

但是,有工具,如jebida,允許您自己重命名類。重命名後,所有對該類的引用也會被重命名。此功能有時稱爲「重構」。這是做這件事的最好方式,但需要更多時間。

此外,也有jeb的插件有助於產生比「」新的更具體的名字,「B」自動重構等,下面是JCASE,您可以修改以滿足您的需求的例子:https://github.com/CunningLogic/myJEBPlugins/blob/master/DeCluster.java