<div dir="ltr">Hello everyone,<div><br></div><div>I&#39;m getting the following error when trying to use soot to alter some class file.</div><div><br></div><div><div>neto@boom ~/prj/Instrument/sootOutput 0 &lt;λ [ java br.com.lealdn.Testing                                                                                              master * ] 12:58 </div><div>Error: A JNI error has occurred, please check your installation and try again</div><div>Exception in thread &quot;main&quot; java.lang.ClassFormatError: Truncated class file</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.lang.ClassLoader.defineClass1(Native Method)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.lang.ClassLoader.defineClass(ClassLoader.java:760)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URLClassLoader.access$100(URLClassLoader.java:73)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URLClassLoader$1.run(URLClassLoader.java:368)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URLClassLoader$1.run(URLClassLoader.java:362)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.security.AccessController.doPrivileged(Native Method)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.net.URLClassLoader.findClass(URLClassLoader.java:361)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:424)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at java.lang.ClassLoader.loadClass(ClassLoader.java:357)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)</div></div><div><br></div><div>The Soot lib used is the latest in github, with the following program:</div><div><br></div><div><div>        Options.v().set_src_prec(Options.src_prec_java);</div><div>        Options.v().set_output_format(Options.output_format_class);</div><div>        Options.v().parse(new String[] { &quot;-pp&quot;, &quot;-process-dir&quot;, &quot;/home/neto/prj/Instrument/bin&quot;,  &quot;-allow-phantom-refs&quot;, &quot;-w&quot; });</div><div>        Scene.v().loadClassAndSupport(&quot;java.lang.Object&quot;);</div><div>        Scene.v().loadClassAndSupport(&quot;java.lang.System&quot;);</div><div>        Scene.v().loadNecessaryClasses();</div><div><br></div><div>        SootClass c = Scene.v().forceResolve(&quot;br.com.lealdn.Testing&quot;, SootClass.BODIES);</div><div>        Scene.v().loadNecessaryClasses();</div><div>        PackManager.v().writeOutput();</div></div><div><br></div><div>I then execute the new create class files with:</div><div>neto@boom ~/prj/Instrument/sootOutput 0 &lt;λ [ java br.com.lealdn.Testing<br></div><div><br></div><div>And get the error. Previously I was getting a &quot;no active body&quot; in method &lt;init&gt; for some classes. I fixed that by changing AbstractJasminClass and adding a:</div><div><br></div><div>method.retrieveActiveBody();<br></div><div><br></div><div>in method &quot;emitMethod&quot;. That solved the problem temporarily.</div><div><br></div><div>I&#39;m I doing this in the correct way?</div><div><br></div><div>Thanks,</div><div>José</div></div>