導航:首頁 > 源碼編譯 > go反編譯

go反編譯

發布時間:2022-01-22 12:17:24

A. go鎖屏軟體里的自帶壁紙在哪裡

apktool反編譯go鎖屏軟體,在res文件夾里會找到你需要的圖片資源。

B. 如何wf文件不被反編譯軟體破解

The answer to the question in the title of this article is: "no way". At least no way to me. By proper tools, I can decompile any SWF.
其實,對於如何保護swf不被破解,答案是並不存在的。至少我無法做到!我可以用一些相應的工具破解任何SWF文件
So, do not incorporate important information in the SWF. Do not include your personal account or password in the SWF.
所以,不要在swf文件中放置任何重要的信息,不要把你的個人賬戶或密碼放在swf中。
I will briefly discuss the history of "protection" technique and how they failed. Then I would discuss how at best we can do. In Chinese old says: "A way able to protect from gentleman but not from professional theft".
我將會簡單地論述「保護(不被破解)」技術以及它們是如何失效的。然後我會介紹如何將「盡最大努力」來保護swf文件。中國有一句老話:「防得住君子,防不過小人」??
OPEN-FILE-FORMAT
開放文件格式
Before any discussion, we must know that, SWF is open format. Open-format means SWF files are not exclusively proced by Flash. Other companies can create SWF that can be played on SWF player. Open-format means what informations get stored in what position are known for public. The meaning of each byte is known for public. So, if I have time to check the SWF byte by byte, I know everything.
在開始探討這個問題之前,我們要知道,swf文件是開放格式的。這意味著swf文件並不是Flash軟體所特定生成的,其他的公司(軟體)同樣可以創建swf文件並且能夠在任何swf播放器上播放(aw附:比如SwishMax,Swift3d等等)開放格式意味著(swf文件的)什麼地方存放什麼內容是公布於眾的。(swf文件的)每一個位元組(8個bit,比如01001110)也是公布於眾的。所以,如果我有時間來逐個位元組地分析一個swf文件,我將會知道一切。
Of course, I won't have the time to check an SWF of 2 mb in size byte by byte. So, there are softwares to help me achieve the jobs. If that software meets trouble, OK, I will take over the job temporarily and check the bytes where troubles occurr. Fix it, and then continue. Nothing can hide. The limitation is my time and my patience.
If the reward of decompiling an SWF is millions of dollars, I surely would like to take years to read it byte by byte.
然而,我當然沒有時間去逐位元組地分析一個2mb的swf文件。所以,這樣就出現了一系列(破解)軟體來幫助我完成這樣一個工作。如果這個軟體遇到麻煩了(可理解為被設計者人為設置),那麼我就要人為地介入這個人物並查出問題所在,找出是哪個(些)位元組除了問題。然後恢復它們,並且讓工作繼續。沒有內容可以被掩蓋,唯一的限制是犧牲了我的時間以及耐心。
OK, here is the history of the war between decompiler and protection.
好,下面介紹一下「破解」與「反破解(保護)」的「戰爭」!
PROTECT FROM IMPORT
==(aw注釋:這是官方的一種防「導入「)==
Since the birth of Flash, Macromedia gives authors a function: "password-protected from import". If you protect that SWF from import with a password, then that SWF can not be imported. Some vector graphics in the SWF can be imported to FLA file if we don't protect it. This protection serves nothing but false security.
自從 Flash誕生以來,Macromedia(公司)就給了設計者這樣一個功能:「密碼防止導入」。如果你對一個swf設置了這樣一個參數,那麼這個swf就無法被(flash)導入。要知道,如果不進行此項設置,swf文件中的矢量元件(一般為重要的腳色設定或者創意)就能被導入進入fla文件。然而這項措施只是一種表面的安全工作而已。
Think about that, your SWF is going to be played by the player of users. You can not protect from that player. So, how does it protect the SWF? Well, the protection is in the Flash software you buy. Flash refuses to import if there is a password string in the SWF. Non-sense, right? I can use hex editor to open that SWF and then delete that password string and then the protection is removed.
這么來想,你的swf文件將在用戶的播放器中播放。你總不可能來保護(,或者說限制)播放器吧?
那麼原理上,它是如何來保護swf的呢?其實不過是在flash中導入之前檢查密碼字元串。我可以用十六進制編輯器來打開這些swf文件,並且把密碼字元串刪除,這樣,所謂的保護就被破壞(破解)了。
How easy it is! So, forget about that protect function.
如此簡單,所以,忘了那項沒有意義的保護措施吧!(Flash提供的所謂的導入密碼)
CONVERTION TO PROJECTOR FILE AND COMPRESSION
==轉換為可執行文件並且壓縮==
If I convert it to a projector file in the format of EXE, can the EXE file be decompiled? Yes. The SWF is still there. There are softwares that can easily extract the SWF out. Compression may make the SWF not readable by hex-editor. Is this a protection? The compression algorithm is similar to zip. It is easily decompressed.
如果把swf文件(邦定播放器)轉換為可執行的exe文件,這樣的exe文件會被破解么?答案是肯定的,swf文件仍然在那裡。有一些軟體可以輕而易舉的把swf文件提取出來。壓縮也許能讓swf文件無法被十六進制編輯器打開,這樣能起到保護作用么?壓縮演算法基本與zip演算法類似(可以有相應的解壓縮演算法)。所以,仍然容易破解。
FLASM AND THE P-CODE
==FlASM和P-CODE==
Then in the era of Flash 5, two popular tools appear. The free "Flasm" and the commercial "ASV 2.0". Flasm is "Flash asm". It interpretates the byte code in the SWF into understandable short codes (p-codes).
早在Flash5.0的時代,有兩個非常流行的工具。免費的「Flasm」和商業版的「ASV 2.0」。Flasm其實就是「flash asm」(Flash+匯編),他能夠把swf文件的位元組全部轉換為匯編短碼(p-code)
For example, "a=3" is displayed as "push 'a', 3", "setVariable";
The byte-codes in the SWF is "96 08 00 00 61 00 07 03 00 00 00 1D"
比如,「a=3」被轉換為「push 'a', 3", "setVariable 」
swf對應的位元組碼為「96 08 00 00 61 00 07 03 00 00 00 1D」
This is an in-valuable tool if we want to study the "structure of SWF format".
如果我們要學習「swf文件的結構」,這是一個非常不錯的工具。
Programmers like to develop software by high level language, such as C, C++. But, when something needs efficience severely, they incorporate low level assembly codes in it. So, sometimes, authors adopt Flasm to write low level p-codes to add efficiency.
(大多數)程序員們都喜歡使用高級語言,比如,C,C++。但是,當某一些(部分、工序)對效率又非常苛刻的要求時,他們(程序員)喜歡參入一些匯編代碼。所以,設計者採用Flasm來編寫低級的p-codes以提高效率。
So, Flasm has a power to edit the actionscript in the SWF. You can see examples how they use this optimization technique to improve the 3d codes. However, malicious users can "edit" the SWF. Any lock in the SWF can be easily removed. We don't need a "key" to open the lock. We just remove the lock.
所以,Flasm有一種編輯swf中as腳本的能力。你可以發現有時他們(設計師)用這種優化技術來優化3D(引擎相關的)代碼。然而,一些不懷好意的用戶就可以藉此「編輯」swf。swf中的任何掩飾都能輕易地(被Flasm)移去。我們作的工作甚至是直接將這些障礙挪走,而並非(再花時間)破解它們。
Here is a common and well known technique to protect our movie from being stolen and shown on other domain. We script a check for _url. If the _url is not our domain, then we disable the functions and display a message "You are thief". However, it is easy to remove this script by Flasm. To crack this protection, it takes not more than 1 minute.
這里有一種非常常見的技術來防止我們的swf被其他域名(即網站、站點)盜用。我們設置一個_url檢測機制,如果_url檢測機制檢測到swf不在我們的域名播放,那麼我們就禁用所有的功能,並且顯示一條信息「你是一個小偷!」。然而,有了Flasm之後,就非常容易移出這段(檢測_url值)的代碼。不出一分鍾,我們就可以破解這種swf了。
aw附:也許很多新手並不熟悉「_url」,我把幫助文檔中的一段簡潔放在這里,一目瞭然。
MovieClip._url
可用性
Flash Player 4。
用法
my_mc._url
說明
屬性(只讀);獲取從中下載影片剪輯的 SWF 文件的 URL。(即,如果swf文件在"http://www.awflasher.com/test.swf"那麼我就會返回這個字元串)
ACTIONSCRIPT VIEWER AND "void (a)<=b>"c" || 0(!1 && !0)"
腳本勘測器(著名的asv)與"void (a)<=b>"c" || 0(!1 && !0)"
ASV can extract symbols out, so the sound, shape and bitmaps can be stolen.
asv可以(從swf中)提取任何元件,因此,所有的聲音、形狀(矢量圖)和點陣圖會被盜用。
It also extracts the actionscript byte codes. ASV 2 tries to match the p-codes to high level actionscript. When it meets "push 'a', 3", "setVariable"; it display "a=3", a language which is the same as actionscript. However, we can easily crash it by creating codes that do not match a pattern. The codes created by Flasm are easily off the standard pattern, so ASV won't get a match. The famous script that crashes ASV 2 is ";" This is a jung-codes. It does nothing but confuse the ASV 2.
它(asv)還可以提取as腳本。asv2甚至能夠把p-code還原成高級as腳本!
當它遇到 "push 'a', 3", "setVariable" 時,就會顯示"a=3",這完全與我們的as腳本一致!
然而我們也可以用增加(干擾)代碼的方法輕易地迴避asv。用Flasm非常容易增添不規范的代碼,這使得asv無法匹配破解。很著名的擾亂代碼是分號「;」。它除了給asv製造麻煩,什麼實際作用也沒有。
However, when the protection scripts are well known, the author of ASV (Burakk) of course won't let it go. The protection technique did not last long before ASV 3.
然而,當代碼的保護措施逐漸傳開之後,asv的作者Burakk(burak.com)顯然不會「坐以待斃」。這種保護方法也在asv3出現之後失效了。
BOOMING OF DECOMPILERS
轟炸破解者
Then the era of MX comes. Penetration rate of Flash dooms. Many decompilers appear.
MX的時代來到了。???很多破解軟體涌現了出來(aw附:其中我個人最反感的就是國內XX大學XX軟體研究院搬asv的XX破解軟體,而且完全針對設計師的原創聲音和圖形!)
ASV 4 is the present version. It displays not only matched actionscript. It also display p-codes if there is no matches. If it gets trouble to interpretate p-codes, it displays the byte codes in the SWF. It also display the offset in the SWF file. This means that, it never "fails". It wont crash because at least it can display "byte codes", the byte in the SWF.
asv4是目前的(最新)版本。它不但可以顯示匹配的腳本,還可以顯示不匹配的p-codes。如果他遇到無法解釋的p-codes,他就會顯示swf的二進制代碼。他甚至還可以顯示swf文件的偏移。這意味著,它從不「失敗」。再惡劣的情況,它也能為我們顯示swf的二進制位元組。
Even more, Flash MX2004 gives out javascript API to create "FLA" file. That makes it able to create a FLA file that can export to that SWF. Everything is there now.
更甚,Flash MX2004設置了JavascriptAPI來創建(編譯)「fla」文件。這使得我們能自主地把fla文件編譯成為相應的swf。所有的東西都浮出水面!
Let alone the sound, shape and bitmaps. Thief does not like these assets because it is so obvious to be caught. Thief likes to steal "actionscript". Because there are hidden passwords. Because there are scripts that block the normal playing of this movie. Because there are functions they can modify and use with less risk of being caught.
我們除去聲音、形狀和點陣圖不談,「剽竊者」們對這些顯而易見的資源不感興趣。他們更喜歡找出腳本代碼(演算法)。因為這些代碼中可能有某些密碼、或者對影片播放的控制。而且,某些演算法可以被他們(剽竊者)修改來投入應用,這樣他們被「捉住」的可能性就更小了!
If ASV can only decompile the script into byte codes, then it is useless to most thief. So, many try their best to prevent ASV 4 to decompile the script into actionscript or p-code. In fact, for most other decompiler, when the script fails to match patterns, the decompiler crashes.
如果asv只能把腳本破解成為二進制代碼,那麼它對大多數剽竊者而言是沒有意義的。所以,很多人想方設法地來保護自己的代碼,從而使得ASV4把它們(代碼)解釋成為二進制代碼而非腳本或者p-codes。事實上,大多數沒什麼技術含量的破解軟體在遇到這種情況下就會出現「破解崩潰」。
Here are techniques in the history. The protection effect of each technique last only for a short while and expires soon after it is "published" in the internet and revealed to the decompiler group.
這些歷史上所有的保護的技術,在他們「公布」(或者因某種原因用諸於眾,比如發布在互聯網上)之後,都難逃厄運。

C. 如何反編譯一個MOD

第一部分 下載forge源碼+建立MOD開發環境。
(1)下載forge源碼
注意下載src鏈接的版本,不要搞錯。比如,forge-1.7.10-10.13.2.1230-src.zip(以src.zip結尾)

注意到有很多下載地址,每一行是一個版本,選擇適合自己的版本。
右邊Downloads列有幾個鏈接,其含義如下:
(a)Changelog——更改日誌。
(b)Installer——jar格式的安裝包,使用與所有平台(Win/Linux/Mac)
(c)installer-win——專屬於Windows的安裝包。
(d)javadoc——自動生成的java文檔。
(e)src—forge源代碼。
(f)universal——單純的jar庫,非安裝包。
(g)userdev——面向開放者。
(2)下載之後加壓縮到某個文件夾。
只留下五個東西:gradle和src文件夾,build.gradle,gradlew和gradlew.bat。
其它的東西沒有用,可以刪除。
打開 Windows命令行,cd定位到剛才的文件。
運行:gradlew.bat setupDecompWorkspace --refresh-dependencies
等待forge反編譯完成。


第二部分,BON進行反混淆。
BON全名bearded-octo-nemesis,是由immibis開放的一個MOD反混淆工具。(immibis可是MOD屆大名鼎鼎的人,比如redlogic,Liquid XP,Advanced Machines等都是非常好用的模組)。
新建一個BON文件夾。
(1)下載userdev版本的forge。還是剛才上面那個地址,只不過這次下載userdev版本。
把下載到的文件放到BON文件夾。
(2)找到forge反編譯之後的文件。
這個文件在C:Users{username}目錄下的
.gradlecachesminecraft etminecraftforgeforge1.7.10-{forgeversion}
比如咱們這個例子就是,1.7.10-10.13.2.1230。把這個文件夾復制一份到BON文件夾。
(3)下載BON
下載到一個BON.jar文件,放到上面的文件夾內。
(4)運行。
雙擊BON.jar之後運行。

Forge userdev.jar:選擇(1)下載的文件。
FG cache folder:選擇(1)復制出來的文件夾。
然後在輸入文件位置選擇你想反混淆的代碼,再選擇要保持的輸出。
操作(operation)注意選擇:反混淆模組。
點擊Go按鈕,等待完成。
反混淆之後的代碼一般以deobf結尾。
比如StevesFactoryManagerA93.jar,反混淆之後就是StevesFactoryManagerA93.deobf.jar。
這時候就可以用jd-gui無障礙的查看代碼了。


第三步 反編譯成源代碼
如果覺得用jd-gui查看不方便的話,可以考慮用fernflower進行反編譯。
fernflower是MCP官方用來發編譯minecraft代碼的神器,雖然沒有jd-gui操作簡便,但是它反編譯代碼的質量非常高。又是官方搭配minecraft使用,是用來反編譯代碼的不二之選。
如何獲得fernflower?
fernflower的官方代碼池,然而需要編譯不方便使用。
這里提供另外兩個方法:
(1)伴隨MCP發布的版本。
去mcp官方網址下載,目前適用於1.7.10的是9.08版。
解壓縮之後,runtime/bin目錄下面,復制出來。
(2)forge提供的版本
去上面提到的.gradle/caches/minecraft目錄下,有一個fernflower-fixed.jar文件。
目前尚不知道,mcp和forge版本的有啥差別。
復制到一個位置之後,打開命令行
java -jar fernflower.jar [要反編譯的包] [保存位置]
反編譯之後的代碼,就可以用記事本直接查看。

D. golang會像java一樣被反編譯嗎

和C/C++編譯的程序一樣,都是機器碼,如果你能反編譯C的就能反編譯Go的。

E. 用Reflector反編譯dll中某個類,這樣的一個私有類怎麼看

_Default.cs里的內容usingASP;usingSystem;usingSystem.Configuration;usingSystem.Data.SqlClient;usingSystem.Web.Profile;usingSystem.Web.SessionState;usingSystem.Web.UI.HtmlControls;publicclass_Default:PageBase,IRequiresSessionState{protectedHtmlFormform1;protectedvoidPage_Load(objectsender,EventArgse){strings="2020-1-1";DateTimetime=DateTime.Parse(s);if(DateTime.Now>time){PublicFunction.GoError(1,"您的使用期已到,請聯系QQ:123延長使用期!");}else{shortnum=base._Site.SiteOptions["Opt_DefaultFirstPageType"].ToShort(2);shortnum2=base._Site.SiteOptions["Opt_DefaultLotteryFirstPageType"].ToShort(1);if(ConfigurationSettings.AppSettings["ShouYe"]=="1"){if(base._Site.Level==4){num=2;}if(num==1){base.Response.Redirect("SurrogateSite/Default.aspx",true);}else{switch(num2){case1:base.Response.Redirect("ShopSite/Default.aspx",true);return;case2:base.Response.Redirect("ShopSiteFootBall/Default.aspx",true);return;case3:base.Response.Redirect("ShopSiteZCDC/Default.aspx",true);return;case4:base.Response.Redirect("ShopSiteCQSSC/Default.aspx",true);return;case5:base.Response.Redirect("ShopSiteSHSSL/Default.aspx",true);return;case6:base.Response.Redirect("ShopSiteHighFrequency/Default.aspx",true);return;}base.Response.Redirect("ShopSite/Default.aspx",true);}}else{base.Response.Redirect("Login.aspx?RequestLoginPage=Room/Default.aspx",true);}}}protectedglobal_asaxApplicationInstance{get{return(global_asax)this.Context.ApplicationInstance;}}{get{return(DefaultProfile)this.Context.get_Profile();}}}

F. golang生成的二進制可以反編譯嗎

和C/C++編譯的程序一樣,生成的都是機器碼,如果你能反編譯C的就能反編譯Go的。

G. GO桌面能換圖標 功能表卻不能換

有一些圖標是主題默認的,只能在桌面更改,只能換主題了,或者用別的桌面軟體看看.......

H. Linux的這個go文件怎麼解壓

go語言寫的,是編譯運行的話,那就是反編譯了,不然不成;除非得到的是源文件……
若是解釋執行,直接就能看見代碼了唄

I. golang生成的二進制可以反編譯嗎

和C/C++編譯的程序一樣,都是機器碼,如果你能反編譯C的就能反編譯Go的。
可以反編譯成匯編

J. 求反編譯這個APK

已反編譯成文件,請直接在這里下載壓縮包即可。

閱讀全文

與go反編譯相關的資料

熱點內容
h264編碼器源碼 瀏覽:664
有什麼辦法翻錄加密視頻 瀏覽:666
java數據結構與演算法面試題 瀏覽:977
解壓不了是什麼意思 瀏覽:359
紐西蘭編程師年薪 瀏覽:321
程序員為什麼大多生閨女 瀏覽:51
c編程用英文還是中文 瀏覽:723
一點都不解壓的游戲 瀏覽:203
解壓為什麼不能用中文文件夾 瀏覽:615
伺服器如何解除備份 瀏覽:144
安卓手機為什麼用一年就變卡 瀏覽:11
如何用風變編程自動回復 瀏覽:512
安卓閱讀幣怎麼樣 瀏覽:437
京東app怎麼切號 瀏覽:583
進入傳奇伺服器後如何修改 瀏覽:42
m0單片機的cycle怎麼知道 瀏覽:806
linux命令太長 瀏覽:782
壓縮機nb1111y是多少w 瀏覽:45
打賞視頻用什麼伺服器好 瀏覽:154
方舟好友伺服器怎麼加mod 瀏覽:982