vb反編譯修改
⑴ 有沒有VB反編譯程序
VBRezQ v2.4a
下載地址http://st.cnc-gd.com/soft/Software.Asp?id=330
可反編譯VB6的EXE文件,得到全部窗體。
vb反編譯精靈v4.3
下載地址http://gsdx.driversky.com/down/vbre.zip
但明確告訴你,目前世界上還沒有任何一款軟體能對稍復雜(注意僅僅是稍復雜)一點的VB6編譯過成的EXE進行實用的反編譯,且不用說目前的軟體EXE文件大都經過加殼這樣的保護處理,反編譯更是不可能了。我在《問專家》網上看到過專家的解答就是這個意思,上面提到過一款說是最好的反編譯VB軟體,也只能把很簡單的EXE編譯出窗體文件,代碼代碼可讀性非常差,更不用說稍復雜一點的程序了。
⑵ 反編譯VB程序
反編譯這種東西其實是不存在的,所謂的反編譯其實就是反匯編。
就連.net寫出來的程序反編譯也不可能直接得到代碼。
如果用一個軟體就能把程序反編譯,所有程序員都該事業了,還費勁腦汁編什麼,直接反編譯別人的不就好了。
如果你想學習反匯編這方面知識,首先要有一個清醒的頭腦,很顯然你的頭腦現在還不夠清醒,屬於小菜鳥級別的,幻想著把別人寫好的程序反編譯出來然後改改就成自己的了。
醒過來!!啪!啪!!
⑶ VB反編譯還原代碼 求助
如果說 VB3、VB4 還有可能的話,那麼 VB5、VB6 反編譯就是完全的痴人說夢了,VB6 已經不是純粹的解釋性語言了,根本不可能反編譯出完整的源代碼,對於這種語言寫出來的程序,只能獲得中間語言或低級語言。一般來說 VB6 都是 P 代碼,而 P-Code 的代碼逆向回來只能自己看,機器是識別不了的。
舉個例子:
比如在 VB6 中有一句代碼 : MsgBox "Decompile Test."
那麼反編譯出來的結果就是:
(代碼太長不貼,這里貼主要的)
...
mov dword ptr [ebp-58], 004012E4 ; 這里把 "Decompile Test."的地址弄進去了。
...
call dword ptr [<&MSVBVM60.__vbaVarDup>]; 可以清楚的看出來,復制了一份變數的句柄。因為VB里字元串指向的是內存地址。
...
call dword ptr [<&MSVBVM60.#595>] ; 這一句彈出了MsgBox.這里如果跟進去的話是一大堆API 。
...
所以正常反編譯(學匯編語言和計算機編譯原理去吧)的話,看到段了就會知道這是一個 Msgbox 函數,但是具體顯示的內容是什麼,那是根本看不出來的。
P.S. 針對樓上[你不懂就別亂說]說的插一嘴,未加殼的 .NET 為何能被反編譯出源代碼,那是因為 .NET 是託管,而託管有中間語言,所以它的源代碼被編譯成 msil 這種中間語言而非像 VB6 直接編譯成機器語言了。
⑷ VB反編譯還原代碼 求助
如果說 VB3、VB4 還有可能的話,那麼 VB5、VB6 反編譯就是完全的痴人說夢了,VB6 已經不是純粹的解釋性語言了,根本不可能反編譯出完整的源代碼,對於這種語言寫出來的程序,只能獲得中間語言或低級語言。一般來說 VB6 都是 P 代碼,而 P-Code 的代碼逆向回來只能自己看,機器是識別不了的。
舉個例子:
比如在 VB6 中有一句代碼 : MsgBox "Decompile Test."
那麼反編譯出來的結果就是:
(代碼太長不貼,這里貼主要的)
...
mov dword ptr [ebp-58], 004012E4 ; 這里把 "Decompile Test."的地址弄進去了。
...
call dword ptr [<&MSVBVM60.__vbaVarDup>]; 可以清楚的看出來,復制了一份變數的句柄。因為VB里字元串指向的是內存地址。
...
call dword ptr [<&MSVBVM60.#595>] ; 這一句彈出了MsgBox.這里如果跟進去的話是一大堆API 。
...
所以正常反編譯(學匯編語言和計算機編譯原理去吧)的話,看到段了就會知道這是一個 Msgbox 函數,但是具體顯示的內容是什麼,那是根本看不出來的。
P.S. 針對樓上[你不懂就別亂說]說的插一嘴,未加殼的 .NET 為何能被反編譯出源代碼,那是因為 .NET 是託管,而託管有中間語言,所以它的源代碼被編譯成 msil 這種中間語言而非像 VB6 直接編譯成機器語言了。