Ghidra是很优秀的逆向工程工具,我也写过一些博客介绍其Java API的用法,例如:Ghidra在Eclipse中新建和运行项目的路径问题_qysh123的专栏-CSDN博客
但是不得不吐槽,其Java API用起来真的是太傻了。我经常遇到的一个问题是:往往我们按照Java的规范新建了类,也包含在classpath中,但是就是报找不到这个类,例如:
ERROR Abort due to Headless analyzer error: Node (HeadlessAnalyzer) java.lang.NoClassDefFoundError: Node
顺便说一下Java打印classpath路径的方法:
System.out.println(System.getProperty("java.class.path"));//当前的classpath路径 System.out.println(System.getProperty("user.dir"));//用户的当前路径
而且这个问题的发生似乎还有随机性,我发现如果更新代码之后(例如加上或删掉一行),再运行的时候就不太容易报这个错,真是让人无力吐槽啊。经过请教师妹,终于搞清了这个问题的解决方法:如果是ubuntu系统,在用户目录下会有一个隐藏文件夹:.ghidra
我们需要在每次运行script之前删掉类似于这样的:/home/yu/.ghidra/.ghidra_10.0.1_PUBLIC/osgi/compiled-bundles 目录下的所有文件夹,从这个路径来看,还是OSGI或者classpath这些方面没设置好啊。总得来说这个问题太弱智了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)