小编XXL*_*rio的帖子

混淆代码的堆栈跟踪显示未混淆的类名?

我正在使用Minecraft的服务器插件,它恰好被混淆了.我一直认为,在混淆之后,恢复原始的类名是不可能的,因为它们被完全删除了,这就是我到处读到的内容.在修改了一段时间之后,我注意到当控制台中出现未捕获的异常时,它会显示类的混淆名称(例如,在cratereloaded.aT.d中),然后在括号内,它通常显示名称在类和违规行中,它显示了原始的类名,这使我相信它实际上可以被反混淆.但是在我尝试的所有工具中,似乎没有人能够恢复原始的类名,即使经过一些十六进制检查后我已经确认原始的类名实际上嵌入在编译的".class"文件中.

是否有任何工具能够使用它来自动恢复类名?

示例堆栈跟踪:

[03:49:57] [Server thread/ERROR]: Error occurred while disabling CrateReloaded v1.3.97.1 (Is it up to date?)
java.lang.NullPointerException: null
    at cratereloaded.aT.d(CrateManager.java:303) ~[?:?]
    at cratereloaded.aT.bm(CrateManager.java:298) ~[?:?]
    at cratereloaded.aT.cleanup(CrateManager.java:83) ~[?:?]
    at cratereloaded.aX.disable(Manager.java:27) ~[?:?]
    at cratereloaded.b.cleanup(CrateReloaded.java:122) ~[?:?]
    at cratereloaded.b.onDisable(CrateReloaded.java:109) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:266) ~[spigot.jar:git-Spigot-596221b-2c5c611]
    at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:361) [spigot.jar:git-Spigot-596221b-2c5c611]
    at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:421) [spigot.jar:git-Spigot-596221b-2c5c611]
    at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:414) [spigot.jar:git-Spigot-596221b-2c5c611]
    at org.bukkit.craftbukkit.v1_12_R1.CraftServer.disablePlugins(CraftServer.java:342) [spigot.jar:git-Spigot-596221b-2c5c611]
    at net.minecraft.server.v1_12_R1.MinecraftServer.stop(MinecraftServer.java:464) [spigot.jar:git-Spigot-596221b-2c5c611]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:612) [spigot.jar:git-Spigot-596221b-2c5c611]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
Run Code Online (Sandbox Code Playgroud)

java obfuscation stack-trace bukkit

6
推荐指数
1
解决办法
457
查看次数

在docker容器内运行pulseaudio来录制系统音频

我正在尝试使用 Selenium 设置一个 Docker 容器,该容器使用 ffmpeg 录制带有系统音频的浏览器。我使用 Xvfb 处理视频。不幸的是,在音频方面,这似乎更加棘手。

我想我应该在容器内设置一个虚拟的脉冲音频接收器,这将允许我记录它的监视器:

pacmd load-module module-null-sink sink_name=loopback
pacmd set-default-sink loopback
ffmpeg -f pulse -i loopback.monitor test.wav
Run Code Online (Sandbox Code Playgroud)

这适用于我的主机操作系统,但是当尝试在容器中启动pulseaudio守护进程时,它失败并显示以下消息:

E: [pulseaudio] module-console-kit.c: Unable to contact D-Bus system bus: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这似乎与名为 dbus 的免费桌面服务有关。我尝试安装它并启动它的守护进程,但我似乎无法让它正常工作。我找不到关于如何从这里继续进行的太多信息。我对pulseaudio 缺少什么?也许有一种更简单的方法可以在容器内录制系统音频?

我的目标不是从主机操作系统录制它,而是在浏览器内播放音频并将其全部录制在同一个容器内。

selenium ffmpeg pulseaudio docker

5
推荐指数
1
解决办法
4667
查看次数

标签 统计

bukkit ×1

docker ×1

ffmpeg ×1

java ×1

obfuscation ×1

pulseaudio ×1

selenium ×1

stack-trace ×1