接下來具體說一下步驟:
這個文件在pyinstaller庫里,還沒有安裝的需要安裝一下(已經安裝的跳過安裝)
安裝完成後在python安裝路徑下的\Lib\site-packages文件夾搜索archive_viewer.py文件
找到文件後可以復制到你想要放置的位置(不復制也行)
這一步會把編譯出的文件都羅列出來,像這樣
但是我們只需要找到我們exe對應的名字的文件就好了,確認存在之後滑到最下面,會發現有個?號用於輸入接下來的命令,在這邊我們輸入
會顯示 to filename? 讓你輸入需要輸出的pyc文件名稱,這邊輸入 your_app.pyc 回車就好了
接下來又會顯示?號,接著輸入 x struct 回車,輸入struct文件名稱 struct 回車
由於用PyInstaller打包後,pyc文件的前8個位元組會被抹掉,所以最後要自己添加回去。前四個位元組為python編譯的版本,後四個位元組為時間戳。
這邊使用Hex Editor Neo軟體同時打開.pyc文件和struct文件,復制struct文件前面8個位元組插入到.pyc文件的前面:
這樣我們就得到了完整的pyc文件
安裝uncompyle庫
反編譯
② .exe文件怎麼反編譯為java代碼(有木有造的)
如果你的exe是用EXE4J生成的可以使用位運算提取class文件
File f=new File("...");//exe文件路徑
File f1=new File("...");//生成的rar文件路徑
FileInputStream fin=new FileInputStream(f);
FileOutputStream fout=new FileOutputStream(f1);
BufferedInputStream bin = new BufferedInputStream(fin);
BufferedOutputStream bout = new BufferedOutputStream(fout);
int in = 0;
do {
in = bin.read();
if (in == -1)
break;
in ^= 0x88;
bout.write(in);
} while (true);
bin.close();
fin.close();
bout.close();
fout.close();
運行完會生成rar,解壓縮後得到項目目錄,但文件是.class的,然後使用jd-gui反編譯一下就是源代碼了
③ exe文件能不能反編譯
所有exe文件都能進行「反編譯」,只不過是經過加密或者優化處理的exe文件反編譯出來無法正常閱讀。
④ EXE文件反編譯成代碼後,能重新再生成EXE文件嗎
如下參考:
1.單擊「開始」菜單以選擇「運行」。
⑤ exe的安裝包,如何反編譯查看代碼
1、首先新建一個android項目,裡面只有一個mainactivity,而且主界面只會顯示一個字元串:你好。
2、下面,切換到這個項目生成的apk文件所在的目錄,可以看到有一個hellodemo.apk。
3、在命令行輸入:apktool
d
-r
hellodemo.apk。可以看到在當前目錄下生成了一個hellodemo文件夾。
4、進入到hellodemo\smali\com\example\hello,打開mainactivity.smali。找到:
const-string
v1,
"\u4f60\u597d",
修改為:
const-string
v1,
"hello",
5、然後在命令行輸入:apktool
b
hellodemo
hellodemo1.apk。這回重新打包成hellodemo1.apk。
6、然後給新生成的apk進行簽名。把這個apk拷貝到autosign的目錄下面,然後切換過去,在命令行輸入:java
-jar
signapk.jar
testkey.x509.pem
testkey.pk8
hellodemo1.apk
hellodemo.apk。
7、把生成的hellodemo.apk安裝到手機,可以看到主界面上已經顯示的是hello,而不再是你好。說明反編譯重新打包成功!
⑥ 如何將.exe反編譯成代碼
反編譯exe文件基本上是不可能的,因為反編譯過程由很多因素會干擾,反編譯過程:
1、檢測程序時候加殼了,如果加殼就必須先去殼。
2、去殼後需要猜測程序員採用的是什麼編程語言,編程語言有:java/c/c++/c#/vb/VC++等等。
3、猜測到程序員使用的語言後根據編程語言進行匯編,匯編需要考慮到語言伏孝中的語法問題,正廳腔即使是同種語言,一種命令有多種說法,匯編成功率在20%左右。
4、匯編成功後基本就已經到反編譯的頂端了,要從匯編程舉衫序翻譯成源碼可能性為1%。