golang程序在编译时去掉了符号信息,怎么逆向

golang程序在编译时去掉了符号信息,怎么逆向,第1张

使用原始build编译的大小

6,107KB

通过埋毁简去除部分连接和调试,build部分参数查看结果。

-a 强余瞎制编译所有依赖包。

-s 去掉弯裤符号信息

-w 去掉DWARF调试信息,得到的程序就不能用gdb调试了

不建议s和w同时使用。

go build -ldflags -w test.go

但是体积还是有点大

4,633KB

如果你要修改,我可以帮你,只要你不嫌烦:

1.到网上下载一个叫doapk的软件,安装在电脑上

2.然后用这个软件反编译你的需野冲配要更改图片的程序的原安装文件

3.将反编译后的文件夹打开,进入res\drawable-hdpi 将里面的一张叫icon.png的判兄图片替换为你希望看到的图片,名字一定还是叫icon.png,切记。

4.同3的步骤,分别进入res\drawable-mdpi 和res\drawable-ldpi 将icon.png替换为你的图片。

5.用doapk将修改后的文件重新编译成apk,并安装,现在这个程序颂指的图标就变成你的图标了。

这个过程会比较无聊。

第一部分 下载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}目录下的

\.gradle\caches\minecraft\net\minecraftforge\forge\1.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 [要反编译的包] [保存位置]

反编译之后的代码,就可以用记事本直接查看。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12245732.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存