Dear Mr Arzt,<div id="yMail_cursorElementTracker_1627494656928"><br></div><div id="yMail_cursorElementTracker_1627494657052">Thank you for your reply and the clarification. I will look into library detection as you suggested.</div><div id="yMail_cursorElementTracker_1627495174217"><br></div><div id="yMail_cursorElementTracker_1627495174374">Best regards,</div><div id="yMail_cursorElementTracker_1627495179156">Faridah Akinotcho<br><br><div id="ymail_android_signature"><a id="ymail_android_signature_link" href="https://go.onelink.me/107872968?pid=InProduct&c=Global_Internal_YGrowth_AndroidEmailSig__AndroidUsers&af_wl=ym&af_sub1=Internal&af_sub2=Global_YGrowth&af_sub3=EmailSignature">Sent from Yahoo Mail on Android</a></div> <br> <blockquote style="margin: 0 0 20px 0;"> <div style="font-family:Roboto, sans-serif; color:#6D00F6;"> <div>On Wed, Jul 28, 2021 at 1:31, Arzt, Steven</div><div><steven.arzt@sit.fraunhofer.de> wrote:</div> </div> <div style="padding: 10px 0 0 20px; margin: 10px 0 0 0; border-left: 1px solid #6D00F6;"> Dear Faridah,<br clear="none"><br clear="none">FlowDroid matches the class name inside the "AndroidCallbacks.txt" against the <br clear="none">parameter types of registration methods inside the app. This works fine for <br clear="none">classes from the Android SDK, i.e., the classes installed on the phone. For <br clear="none">Android support classes compiled into the app, on the other hand, it might not <br clear="none">work, since these apps may be obfuscated and the classes may be renamed. In <br clear="none">that case, the matching fails and the callback will not be found.<br clear="none"><br clear="none">By default, FlowDroid does not have any mechanism to detect obfuscated <br clear="none">callbacks. Maybe some of the work that has been done on library detection in <br clear="none">obfuscated apps can be adapted to detect obfuscated callbacks. If you want to <br clear="none">work on that, merge requests are always welcome.<br clear="none"><br clear="none">Best regards,<br clear="none">  Steven<br clear="none"><br clear="none"><div class="yqt4154905044" id="yqtfd54479"><br clear="none">-----Original Message-----<br clear="none">From: Soot-list <<a shape="rect" ymailto="mailto:soot-list-bounces@CS.McGill.CA" href="mailto:soot-list-bounces@CS.McGill.CA">soot-list-bounces@CS.McGill.CA</a>> On Behalf Of Faridah <br clear="none">Akinotcho<br clear="none">Sent: Mittwoch, 28. Juli 2021 03:52<br clear="none">To: Soot-list <<a shape="rect" ymailto="mailto:soot-list@cs.mcgill.ca" href="mailto:soot-list@cs.mcgill.ca">soot-list@cs.mcgill.ca</a>><br clear="none">Subject: [Soot-list] FlowDroid callback extraction in obfuscated library<br clear="none"><br clear="none">Hi,<br clear="none"><br clear="none">My name is Faridah Akinotcho and I am currently using FlowDroid to build <br clear="none">static app models. For this purpose, there are specific callbacks which I need <br clear="none">to parse and analyze. In particular, I extended the AndroidCallbacks.txt file, <br clear="none">with 'android.support.design.widget.NavigationView$OnNavigationItemSelected' <br clear="none">in order to obtain the callback 'boolean onNavigationItemSelected(MenuItem <br clear="none">menuItem)'<br clear="none"><br clear="none">The APK that I am working with obfuscate some of the library methods by <br clear="none">renaming, as shown in the picture:<br clear="none"><br clear="none"><br clear="none"><br clear="none">My understanding was that, since FlowDroid parses bytecode, it would find and <br clear="none">parse NavigationView$OnNavigationItemSelected, then extract its interface <br clear="none">methods. However, logs show that FlowDroid extract NavigationView$a (the <br clear="none">obfuscated version of the interface), which results in callbacks not being <br clear="none">found.<br clear="none"><br clear="none">I was hoping I could get some clarification on whether this is the expected <br clear="none">behavior and if so, I would greatly appreciate any pointers on how to solve <br clear="none">this issue. Please note that, building an exhaustive list of all the <br clear="none">obfuscated APIs and adding them to AndroidCallbacks.txt wouldn't be feasible, <br clear="none">as the analysis I am trying to perform, will involve multiple apps, with <br clear="none">potentially different obfuscated methods.<br clear="none"><br clear="none">Best regards,<br clear="none">Faridah Akinotcho<br clear="none"><br clear="none"></div> </div> </blockquote></div>