<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,&nbsp;<div class="">I am trying to get the CG for an APK using soot programmatically. But for every APK each time doing the CG creation in Eclipse I am encountering the error for my complete code:&nbsp;<div class=""><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> java.io.IOException;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> java.util.ArrayList;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> java.util.Collections;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> <span style="text-decoration: underline" class="">java.util.Iterator</span>;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> java.util.List;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> org.xmlpull.v1.XmlPullParserException;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> soot.*;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> soot.jimple.infoflow.android.SetupApplication;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> soot.jimple.toolkits.callgraph.CallGraph;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> soot.options.Options;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> <span style="text-decoration: underline" class="">soot.toolkits.graph.ExceptionalUnitGraph</span>;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">import</span> <span style="text-decoration: underline" class="">soot.util.Chain</span>;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class="">//import oracle.jrockit.jfr.Options;</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span style="color: #931a68" class="">public</span> <span style="color: #931a68" class="">class</span> TestInside {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><span style="color: #000000" class=""><span class="Apple-tab-span" style="white-space:pre">        </span></span>//@SuppressWarnings("deprecation")</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span><span style="color: #931a68" class="">public</span> <span style="color: #931a68" class="">static</span> <span style="color: #931a68" class="">void</span> main(String[] <span style="color: #7e504f" class="">args</span>) {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><span style="color: #000000" class=""><span class="Apple-tab-span" style="white-space:pre">                </span></span>// <span style="color: #91afcb" class="">TODO</span> Auto-generated method stub</div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>soot.G.reset();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_keep_line_number(<span style="color: #931a68" class="">true</span>);</div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_src_prec(Options.<span style="color: #0326cc" class="">src_prec_apk</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_process_dir(Collections.singletonList(Constants.<span style="color: #0326cc" class="">APK_PATH</span>));</div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_android_jars(Constants.<span style="color: #0326cc" class="">PLATFORM_PATH</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_whole_program(<span style="color: #931a68" class="">true</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_allow_phantom_refs(<span style="color: #931a68" class="">true</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_keep_line_number(<span style="color: #931a68" class="">true</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_allow_phantom_refs(<span style="color: #931a68" class="">true</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>List &lt;String&gt; <span style="color: #7e504f" class="">list</span> = <span style="color: #931a68" class="">new</span> ArrayList&lt;&gt;();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7e504f" class="">list</span>.add(Constants.<span style="color: #0326cc" class="">APK_PATH</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_process_dir(Collections.singletonList(Constants.<span style="color: #0326cc" class="">APK_PATH</span>));</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_output_format(Options.<span style="color: #0326cc" class="">output_format_none</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().setPhaseOption(<span style="color: #3933ff" class="">"cg.spark verbose:true"</span>, <span style="color: #3933ff" class="">"on"</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Scene.v().loadNecessaryClasses();</div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>SetupApplication <span style="color: #7e504f" class="">app</span> = <span style="color: #931a68" class="">new</span> SetupApplication(Constants.<span style="color: #0326cc" class="">PLATFORM_PATH</span>, Constants.<span style="color: #0326cc" class="">APK_PATH</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #931a68" class="">try</span> {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7e504f" class="">app</span>.calculateSourcesSinksEntrypoints(Constants.<span style="color: #0326cc" class="">SOURCE_SINK_PATH</span>);</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>} <span style="color: #931a68" class="">catch</span> (IOException <span style="color: #7e504f" class="">e</span>) {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><span style="color: #000000" class=""><span class="Apple-tab-span" style="white-space:pre">                </span></span>// <span style="color: #91afcb" class="">TODO</span> Auto-generated catch block</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7e504f" class="">e</span>.printStackTrace();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>} <span style="color: #931a68" class="">catch</span> (XmlPullParserException <span style="color: #7e504f" class="">e</span>) {</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><span style="color: #000000" class=""><span class="Apple-tab-span" style="white-space:pre">                </span></span>// <span style="color: #91afcb" class="">TODO</span> Auto-generated catch block</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><span style="color: #7e504f" class="">e</span>.printStackTrace();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>}</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class="">//<span class="Apple-tab-span" style="white-space:pre">                </span></div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>SootMethod <span style="color: #7e504f" class="">entryPoint</span> = <span style="color: #7e504f" class="">app</span>.getEntryPointCreator().createDummyMain();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Options.v().set_main_class(<span style="color: #7e504f" class="">entryPoint</span>.getSignature());</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>Scene.v().setEntryPoints(Collections.singletonList(<span style="color: #7e504f" class="">entryPoint</span>));</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>System.<span style="color: #0326cc" class="">out</span>.println(<span style="color: #7e504f" class="">entryPoint</span>.getActiveBody());</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>PackManager.v().runPacks();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>System.<span style="color: #0326cc" class="">out</span>.println(Scene.v().getCallGraph().size());</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span>CallGraph <span style="text-decoration: underline ; color: #7e504f" class="">cg</span> = Scene.v().getCallGraph();</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><span style="color: #000000" class=""><span class="Apple-tab-span" style="white-space:pre">                </span></span>//app.runInfoflow();</div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><p style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><span class="Apple-tab-span" style="white-space:pre">                </span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; color: rgb(78, 144, 114);" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco; min-height: 19px;" class=""><br class=""></div><div style="margin: 0px; font-size: 14px; line-height: normal; font-family: Monaco;" class="">}</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Monaco; color: rgb(255, 38, 0);" class="">Exception in thread "main" <span style="text-decoration: underline ; color: #0433ff" class="">soot.SootResolver$SootClassNotFoundException</span>: couldn't find class: com.dictionary.paid.Serp (is your soot-class-path set properly?)</div><div class=""><br class="webkit-block-placeholder"></div><div class="">I would like to know what things are messed up here. The error occurs in the line where I call createDummyMain()&nbsp;</div><div class="">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">--</div><div class="">Tanzirul Azim</div><div class=""><br class=""></div></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>
<br class=""></div></div></div></body></html>