导航:首页 > 源码编译 > 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反编译相关的资料

热点内容
android图片变灰 浏览:268
linuxvi下一个 浏览:975
安卓手机的应用锁怎么解 浏览:735
linux增加路径 浏览:849
sql身份证号最后四位加密 浏览:533
xp系统表格加密 浏览:856
光遇安卓军大衣什么时候上线 浏览:840
android应用商店图标 浏览:341
java计算圆的面积 浏览:643
应用编译优化recovery 浏览:577
域控命令n 浏览:258
php导出文件 浏览:15
谷歌地图网页版无法连接服务器地址 浏览:298
菜鸟工具在线编译python 浏览:858
栅格化命令有何作用 浏览:825
为什么压缩文件不能解压 浏览:311
足球app哪个软件好 浏览:96
产品经理逼疯程序员的一天 浏览:17
修改svn服务器ip地址 浏览:584
下列关于编译说法正确的是 浏览:246