Giter Club home page Giter Club logo

yhs0602 / android-disassembler Goto Github PK

View Code? Open in Web Editor NEW
567.0 23.0 89.0 187.84 MB

Disassemble ANY files including .so (NDK, JNI), Windows PE(EXE, DLL, SYS, etc), linux binaries, libraries, and any other files such as pictures, audios, etc(for fun)files on Android. Capstone-based disassembler application on android. 안드로이드 NDK 공유 라이브러리, Windows 바이너리, etc,... 리버싱 앱

Home Page: https://kyhsgeekcode.github.io/Android-Disassembler/

License: MIT License

CMake 0.26% C++ 6.18% Java 14.98% Kotlin 78.57%
assembly disassembler android shared-library reversing security-tools exe dll disassemble disassembly

android-disassembler's Introduction

Android-Disassembler

ci CodeFactor Play Store Info HitCount Contributions Welcome GitHub stars

Analyze malicious app on your phone

Android Disassembler is an application that is able to analyze several types of files such as APK files, dex files, shared libraries (aka .so files) (NDK, JNI), windows PE files(EXE, DLLs, SYSs, etc..), linux executables, object files and much more. These app features are based on capstone library, elf parser, PE parser, backsmali, and facile reflector.

Get Android Disassembler on Google Play

Version 2.1.5 release!

What's new : Fix several minor bug (crash)

Features

  • Shows details of elf files.
  • Shows symbol table(functions or objects' ,... names) of elf files.
  • Disassembles the code sections.
  • Has various export options of the disassembly. (Reloadable raw file, compilable txt file, analytic text files, json, and reloadable database)
  • Supports projects.
  • Supports directly launching from file browsers.
  • Supports many ABIs(arm,x86,x64,MIPS,PowerPC,...)
  • Jump to address by symbols' names, or a hex address.
  • Syntax colorizing.
  • Support PE and other bin formats.
  • Sort symbols if needed.
  • Colorize PUSH/POP instructions.
  • Colorize ARM arch instructions better.
  • Added Follow Jump menu for jump instructions.(With BackStack)
  • Can override auto parse setup
  • You can copy an instruction to the clipboard.
  • It now parses IAT, EAT of PE headers.
  • You can now choose the columns to view.
  • Supports analyzing system files(which are not accessible without root permission) for rooted phones.
  • Friendlier message for non-parsable files.
  • The storage chooser now retains the session, so that it remembers the last browsed folder.
  • Added Hex View and utility calculator.
  • Theme installation is automated.
  • Choose which binary to analyze when the zip/apk has multiple binaries.
  • Choose APK from installed
  • Search for strings in the binary (Unfortunately only for ascii characters)
  • Bytewise analysis (mean, hashes, entropy, g-test, chi-test, autocorrelation) to help determine if the file is encrypted
  • Support .NET assemblies
  • Support dex files
  • Analyzing multiple files in a project is allowed.

Usage explanation video

Watch the video

Materials about assemblies

Error Handling

  • The app crashes!

    Sorry for inconvenience, please send an error report as an issue. If you can't wait for the next stable version, please check / grant the read/write permission to the app.

  • NotThisFormatException

    Is it a well known executable file? (ELF:.so, .o, .lib, .a, etc.., PE:.exe, .dll, .sys, ...) Then please report me with the file you tried to disassemble. If not, you need to press OK and setup manually.

Feature requests are welcomed!

Build & Pull request

  • Use Android studio.
  • Any improvements are welcomed!

Open Source

This app used

TODO

  • Show prototypes of NDK/C standard APIs in the symbols tab.
  • More sophisticated colorizing
  • Generate more useful comments
  • Provide assembly tutorials.
  • Add pseudo-virtual machine to debug.
  • Allow users to analyze active processes.
  • Add arrow beside the disassembly.
  • Row selection
  • Better support for thumb assemblies
  • Add compatibility for OllyDbg's .udd/.bak files
  • Add compatibility for IDA's produce files.
  • About to add other utilities.
  • Add android resource analyzer
  • Let user choose file from google drive
  • Let user choose samples from web by hashes

Thanks

https://reverseengineering.stackexchange.com/a/20124/23870

XRefs

https://reverseengineering.stackexchange.com/a/18203/23870

Privacy Policy

I think I have to notice you that:

  • When the crash report with types such as FileCorruptedException is sent, the file you are analyzing may be attached to the bug report email, and be uploaded to the repository in github.com.

android-disassembler's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar friederbluemle avatar imgbotapp avatar pramukesh avatar yhs0602 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-disassembler's Issues

Crash report

Sent by V.Drugachev ([email protected]). Created by fire.


java.io.NotSerializableException: android.util.LongSparseArray
at java.io.ObjectOutputStream.writeNewObject(ObjectOutputStream.java:1344)
at java.io.ObjectOutputStream.writeObjectInternal(ObjectOutputStream.java:1651)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1497)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:1461)
at com.kyhsgeekcode.disassembler.MainActivity.SaveDisasmRaw(MainActivity.java:661)
at com.kyhsgeekcode.disassembler.MainActivity.ExportDisasmSub(MainActivity.java:566)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000042(MainActivity.java)
at com.kyhsgeekcode.disassembler.MainActivity$100000004.onClick(MainActivity.java:823)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1231)
at android.widget.AdapterView.performItemClick(AdapterView.java:346)
at android.widget.AbsListView.performItemClick(AbsListView.java:1577)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3970)
at android.widget.AbsListView$7.run(AbsListView.java:6065)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7331)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Отправлено с устройства Samsung.

Crash report

Sent by @KYHSGeekCode ([email protected]). Created by fire.


java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kyhsgeekcode.disassembler/com.kyhsgeekcode.disassembler.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.kyhsgeekcode.disassembler.DisassemblyManager.getData()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6126)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.ArrayList com.kyhsgeekcode.disassembler.DisassemblyManager.getData()' on a null object reference
at com.kyhsgeekcode.disassembler.MainActivity.setupListView(MainActivity.java:1319)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1161)
at android.app.Activity.performCreate(Activity.java:6679)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618)
... 10 more

Crash report

Sent by Admin Gpd ([email protected]). Created by fire.


com.kyhsgeekcode.disassembler.NotThisFormatException
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:20)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2126)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2101)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000099(MainActivity.java)
at com.kyhsgeekcode.disassembler.MainActivity$100000026.onSelect(MainActivity.java:1979)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

error: cannot find symbol class PLT

I am trying to build the project with Android Studio 3.

I am getting

error: cannot find symbol class PLT

I cannot find the class name PLT in the code as well. Plus JNI functions for

public static native String Demangle(String mangled);
public static native List ParsePLT(String filepath);

seems to be missing as well.

Is the code upto date in github?

Crash report

Sent by Jc Mcgee ([email protected]). Created by fire.


java.lang.RuntimeException: The PE parser threw EOFException. The file may be corrupted.
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:35)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2176)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2074)
at com.kyhsgeekcode.disassembler.MainActivity.access$2300(MainActivity.java:90)
at com.kyhsgeekcode.disassembler.MainActivity$18.run(MainActivity.java:1508)
at com.kyhsgeekcode.disassembler.MainActivity.onRequestPermissionsResult(MainActivity.java:2044)
at com.kyhsgeekcode.disassembler.MainActivity.requestAppPermissions(MainActivity.java:382)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1529)
at android.app.Activity.performCreate(Activity.java:7183)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Some Enhancements

1.Opening details tab or Disassemble tab without having file to decompile shows toast instead direct user to file selector activity to select file
2.add option to stop decompile process if user wants to stop it there is no option for that

Crash report

Sent by babi sai ([email protected]). Created by fire.


java.lang.NumberFormatException: Zero length string
at java.lang.Long.decode(Long.java:894)
at com.kyhsgeekcode.disassembler.MainActivity.parseAddress(MainActivity.java:177)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000020(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000003$100000002$100000000.onClick(MainActivity.java:129)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Crash report

Sent by Ch Aurangzeb ([email protected]). Created by fire.


java.lang.RuntimeException: Unable to resume activity {com.kyhsgeekcode.disassembler/com.kyhsgeekcode.disassembler.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.kyhsgeekcode.disassembler.ColorHelper.isUpdatedColor()' on a null object reference
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4278)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4319)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3441)
at android.app.ActivityThread.-wrap12(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:109)
at android.os.Looper.loop(Looper.java:166)
at android.app.ActivityThread.main(ActivityThread.java:7555)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:469)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:963)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.kyhsgeekcode.disassembler.ColorHelper.isUpdatedColor()' on a null object reference
at com.kyhsgeekcode.disassembler.MainActivity.onResume(MainActivity.java:65)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1365)
at android.app.Activity.performResume(Activity.java:7452)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4246)
... 10 more

Crash report

Sent by rancaduodo ([email protected]). Created by fire.


java.lang.NullPointerException: Attempt to get length of null array
at com.kyhsgeekcode.disassembler.AbstractFile.toString(AbstractFile.java:65)
at com.kyhsgeekcode.disassembler.MainActivity.ShowDetail(MainActivity.java:1814)
at com.kyhsgeekcode.disassembler.MainActivity.onClick(MainActivity.java:417)
at android.view.View.performClick(View.java:5698)
at android.widget.TextView.performClick(TextView.java:10846)
at android.view.View$PerformClick.run(View.java:22570)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7230)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Enviado a partir do meu smartphone Samsung Galaxy.

Crash report

Sent by Cristian Hernandez ([email protected]). Created by fire.


java.io.EOFException: Expected to read bytes from the stream
at org.boris.pecoff4j.io.DataReader.safeRead(DataReader.java:161)
at org.boris.pecoff4j.io.DataReader.readDoubleWord(DataReader.java:60)
at org.boris.pecoff4j.io.PEParser.readDos(PEParser.java:140)
at org.boris.pecoff4j.io.PEParser.read(PEParser.java:69)
at org.boris.pecoff4j.io.PEParser.parse(PEParser.java:63)
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:17)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2459)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2304)
at com.kyhsgeekcode.disassembler.MainActivity.access$2300(MainActivity.java:89)
at com.kyhsgeekcode.disassembler.MainActivity$16.run(MainActivity.java:1594)
at com.kyhsgeekcode.disassembler.MainActivity.onRequestPermissionsResult(MainActivity.java:2270)
at com.kyhsgeekcode.disassembler.MainActivity.requestAppPermissions(MainActivity.java:1255)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1619)
at android.app.Activity.performCreate(Activity.java:6754)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2787)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1504)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6247)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:872)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Correctly detect Thumb mode

Some instructions seems to be disassembled in thumb mode(ARM), but currently disassembles as .byte xx xx xx xx or something.

Check developer in settings causes crash

Sent by babi sai ([email protected]). Created by fire.


java.lang.SecurityException: Permission Denial: starting Intent { cmp=com.jourhyang.disasmarm/.MadeByActivity } from ProcessRecord{a0226fe 29195:com.kyhsgeekcode.disassembler/u0a144} (pid=29195, uid=10144) not exported from uid 10138
at android.os.Parcel.readException(Parcel.java:2005)
at android.os.Parcel.readException(Parcel.java:1951)
at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:4352)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1611)
at android.app.Activity.startActivityForResult(Activity.java:4532)
at android.app.Activity.startActivityForResult(Activity.java:4490)
at android.app.Activity.startActivity(Activity.java:4851)
at android.app.Activity.startActivity(Activity.java:4819)
at android.preference.Preference.performClick(Preference.java:1153)
at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:249)
at android.widget.AdapterView.performItemClick(AdapterView.java:318)
at android.widget.AbsListView.performItemClick(AbsListView.java:1208)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3296)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Crash report

Sent by Samantha Ramirez ([email protected]). Created by fire.


java.lang.RuntimeException: The PE parser threw EOFException. The file may be corrupted.
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:35)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2176)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2126)
at com.kyhsgeekcode.disassembler.MainActivity.access$3200(MainActivity.java:90)
at com.kyhsgeekcode.disassembler.MainActivity$29.onSelect(MainActivity.java:2002)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$5$1.run(SecondaryChooserFragment.java:158)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6797)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:772)

Check first it is a bin file after file selection opening text file causes this issue (not accidentally but intentionally only)

Sent by babi sai ([email protected]). Created by fire.


java.lang.NullPointerException: Attempt to read from field 'nl.lxtreme.binutils.elf.Elf com.kyhsgeekcode.disassembler.ELFUtil.elf' on a null object reference
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:1308)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000062(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000013.onSelect(MainActivity.java:1161)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Emails:
[email protected]

Crash report

Sent by babi sai ([email protected]). Created by fire.


java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jourhyang.disasmarm/com.jourhyang.disasmarm.FileSelectorActivity}: java.lang.NullPointerException: Attempt to get length of null array
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2779)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2857)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1590)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: Attempt to get length of null array
at com.jourhyang.disasmarm.FileSelectorActivity.getDir(FileSelectorActivity.java:39)
at com.jourhyang.disasmarm.FileSelectorActivity.onCreate(FileSelectorActivity.java:23)
at android.app.Activity.performCreate(Activity.java:7054)
at android.app.Activity.performCreate(Activity.java:7045)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2732)
... 9 more

Crash report

Sent by Jennifer Wellong ([email protected]). Created by fire.


java.lang.NullPointerException: Attempt to get length of null array

at com.kyhsgeekcode.disassembler.AbstractFile.toString(AbstractFile.java:65)

at com.kyhsgeekcode.disassembler.MainActivity.ShowDetail(MainActivity.java:1814)

at com.kyhsgeekcode.disassembler.MainActivity.onClick(MainActivity.java:417)

at android.view.View.performClick(View.java:5721)

at android.widget.TextView.performClick(TextView.java:10936)

at android.view.View$PerformClick.run(View.java:22624)

at android.os.Handler.handleCallback(Handler.java:739)

at android.os.Handler.dispatchMessage(Handler.java:95)

at android.os.Looper.loop(Looper.java:148)

at android.app.ActivityThread.main(ActivityThread.java:7422)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Get BlueMail for Android

Use ButterKnife to reduce Boilerplate Code

Use ButterKnife lib to reduce code at present code looking clumsy
and use separate method if nested methods are way long your code nesting very deep
I think you are using mobile to build it
how can build such deep nested classes with mobile
avoiding deep nesting improves readability of code

if you are interested and have resources try kotlin lang which is much more advanced and modern language with minimal syntax most of functions in in built to it and some of best are extension function

by the way what is your school standard

Crash report while export as project db

Sent by babi sai ([email protected]). Created by fire.


java.lang.NullPointerException: Attempt to invoke virtual method 'int com.kyhsgeekcode.disassembler.DatabaseHelper.getCount()' on a null object reference
at com.kyhsgeekcode.disassembler.MainActivity.SaveDisasm(MainActivity.java:504)
at com.kyhsgeekcode.disassembler.MainActivity.ExportDisasmSub(MainActivity.java:326)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000039(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000008.onClick(MainActivity.java:495)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1142)
at android.widget.AdapterView.performItemClick(AdapterView.java:318)
at android.widget.AbsListView.performItemClick(AbsListView.java:1208)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3296)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Version 1.3.1 crash report

This version loads the UI before getting the required permission, resulting in crash on first start. I even got logcat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kyhsgeekcode.disassembler/com.kyhsgeekcode.disassembler.MainActivity}: java.lang.NullPointerException: Attempt to get length of null array
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: Attempt to get length of null array
at com.kyhsgeekcode.disassembler.ColorHelper.(ColorHelper.java:92)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1113)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
... 9 more

Crash report

Sent by A Fisher ([email protected]). Created by fire.


java.lang.RuntimeException: The PE parser threw EOFException. The file may be corrupted.
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:35)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2176)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2126)
at com.kyhsgeekcode.disassembler.MainActivity.access$3200(MainActivity.java:90)
at com.kyhsgeekcode.disassembler.MainActivity$29.onSelect(MainActivity.java:2002)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$5$1.run(SecondaryChooserFragment.java:158)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6626)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:811)

Crash report

Sent by babi sai ([email protected]). Created by fire.


java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.kyhsgeekcode.disassembler.MainActivity$100000008.run(MainActivity.java:401)
at java.lang.Thread.run(Thread.java:764)

Always Keep Master as Buildable Branch

As Main idea of github is download and build ready code without code mode modification for basic build
So always make a separate branch to commit changes and push them once completely buildable

Crash report

Sent by Uriel Rios-Avila ([email protected]). Created by fire.


java.lang.NullPointerException: Attempt to get length of null array
at com.kyhsgeekcode.disassembler.AbstractFile.toString(AbstractFile.java:65)
at com.kyhsgeekcode.disassembler.MainActivity.ShowDetail(MainActivity.java:1814)
at com.kyhsgeekcode.disassembler.MainActivity.onClick(MainActivity.java:417)
at android.view.View.performClick(View.java:6897)
at android.widget.TextView.performClick(TextView.java:12693)
at android.view.View$PerformClick.run(View.java:26100)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Developer info design

Change Developer info design
what are you using for showing that grids?
use list like open source licenses page in settings to show info because it is not as per material guidelines design or at least it looks ugly in entire app after design change
put List title with developer name and list description with github url and make item clickable to open the profile url

Version 1.3.2 issue

For some reason this version didn't ask me for storage permission, so on first start it crashed. On the next starts it just loads empty activity due to no storage permission. It doesn't ask for permission at all. Here is also a logcat for the first start (I know it is useless):

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kyhsgeekcode.disassembler/com.kyhsgeekcode.disassembler.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.kyhsgeekcode.disassembler.ListViewAdapter.addAll(java.util.ArrayList)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2778)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.kyhsgeekcode.disassembler.ListViewAdapter.addAll(java.util.ArrayList)' on a null object reference
at com.kyhsgeekcode.disassembler.MainActivity.setupListView(MainActivity.java:1579)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1436)
at android.app.Activity.performCreate(Activity.java:7009)
at android.app.Activity.performCreate(Activity.java:7000)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
... 9 more

Search for symbols does not work

Searching for symbols does not work.

To Reproduce

  1. Go to SYMBOLS tab
  2. Click on menu -> goto -> type symbol name and click Go
  3. Does not go to symbol. Table stays the same

Expected behavior
Goto symbol

I used the
/system/vendor/lib64/libsec-ril.so

goto _ZN6SecRil19UnsolicitedResponseEiP7RilData

used version 1.4.1.1

Directly Open from File Manager App

This is enhancement like
When we want to open MP3 files we don't have to go to music player instead we can open from File Manager App in our phone likewise
Add an ability to open files from file manager to decompile so that we don't have to open app to decompile so this reduces time consumption

Opening file from files app causes this

Sent by babi sai ([email protected]). Created by fire.


java.io.FileNotFoundException: /ZmlsZTovLy9zdG9yYWdlL2VtdWxhdGVkLzAvanVtb2JpbGUvYXJtZWFiaS12N2EvbGliaGFyZmJ1enouc28/0 (No such file or directory)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:200)
at java.io.FileInputStream.(FileInputStream.java:150)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:1622)
at com.kyhsgeekcode.disassembler.MainActivity.onCreate(MainActivity.java:1222)
at android.app.Activity.performCreate(Activity.java:7054)
at android.app.Activity.performCreate(Activity.java:7045)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2732)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2857)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1590)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Crash report

Sent by Joseph Crone ([email protected]). Created by fire.


Failed to parse a zip file had to to do it myself just thought you should know.

com.kyhsgeekcode.disassembler.NotThisFormatException
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:20)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2199)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2173)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000097(MainActivity.java)
at com.kyhsgeekcode.disassembler.MainActivity$100000025.onSelect(MainActivity.java:2053)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Use async task while export as project

Use async task as export blocks ui thread if blocking in for long time ui thread reports
to system as app not responding error asks user to exit or wait until app responds

Release installable app on github

Release an app on github so that we can check and report for error everyone Does not have building environment to build app so those can be testers for bugs

Crash report

Sent by Michael Hawley ([email protected]). Created by fire.


java.lang.StringIndexOutOfBoundsException: length=0; index=-1
at java.lang.String.substring(String.java)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.populateList(SecondaryChooserFragment.java:623)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.initListView(SecondaryChooserFragment.java:454)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.getLayout(SecondaryChooserFragment.java:359)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment.onCreateDialog(SecondaryChooserFragment.java:698)
at android.app.DialogFragment.getLayoutInflater(DialogFragment.java)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java)
at android.app.BackStackRecord.run(BackStackRecord.java)
at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java)
at android.app.FragmentManagerImpl$1.run(FragmentManager.java)
at android.os.Handler.handleCallback(Handler.java)
at android.os.Handler.dispatchMessage(Handler.java)
at android.os.Looper.loop(Looper.java)
at android.app.ActivityThread.main(ActivityThread.java)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)

Mike Hawley
General Smartass
Defense Contractor for US NAVY

Crash report

Sent by mscalindt (@mscalin-dt). Created by fire.


Crash report
java.nio.BufferUnderflowException
at java.nio.Buffer.nextGetIndex(Buffer.java:493)
at java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:319)
at nl.lxtreme.binutils.elf.SectionHeader.(SectionHeader.java:31)
at nl.lxtreme.binutils.elf.Elf.(Elf.java:129)
at nl.lxtreme.binutils.elf.Elf.(Elf.java:82)
at com.kyhsgeekcode.disassembler.ELFUtil.(ELFUtil.java:82)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:1302)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000062(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000013.onSelect(MainActivity.java:1161)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:440)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Emails:
[email protected]

Sent from ProtonMail mobile

Opening bin file causes this

Sent by babi sai ([email protected]). Created by fire.


java.io.IOException: Unable to get symbol table for dynamic section!
at nl.lxtreme.binutils.elf.Elf.getDynamicSymbolTable(Elf.java:298)
at com.kyhsgeekcode.disassembler.ELFUtil.AfterConstructor(ELFUtil.java:167)
at com.kyhsgeekcode.disassembler.ELFUtil.(ELFUtil.java:93)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:1736)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000083(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000018.onSelect(MainActivity.java:1530)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6499)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:442)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Add root file browser

Would be nice to have the ability to pick from "/" folder instead of Internal Storage.

Go to Last Browsed folder

When we click select file it shows storage option selection choose files instead of browsing always from start add an option to go to last browsed folder directly because
if file lies in /0/Folder/folder/folder/../file.so
we have to always go to such deep folder to select file so add feature to go to last accessed folder
also some people saves binary files in same folder or at least android system does it saves most of the files in same system folder so it can be useful if add root functionality to the app

Save project pop-up

Tapping back right after launching the app will always display "Save Project" dialogue.

Crash report

Sent by elmer1996mk ([email protected]). Created by fire.


java.io.IOException: Unable to get symbol table for dynamic section!
at nl.lxtreme.binutils.elf.Elf.getDynamicSymbolTable(Elf.java:298)
at com.kyhsgeekcode.disassembler.ELFUtil.AfterConstructor(ELFUtil.java:167)
at com.kyhsgeekcode.disassembler.ELFUtil.(ELFUtil.java:93)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:1736)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000083(Unknown Source:4)
at com.kyhsgeekcode.disassembler.MainActivity$100000018.onSelect(MainActivity.java:1530)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

Sent from my Samsung Galaxy smartphone.

Crash report

Sent by (@megdimka). Created by fire.


java.lang.NegativeArraySizeException: -662702621
at org.boris.pecoff4j.io.PEParser.readStub(PEParser.java:158)
at org.boris.pecoff4j.io.PEParser.read(PEParser.java:77)
at org.boris.pecoff4j.io.PEParser.parse(PEParser.java:63)
at com.kyhsgeekcode.disassembler.PEFile.(PEFile.java:16)
at com.kyhsgeekcode.disassembler.MainActivity.AfterReadFully(MainActivity.java:2324)
at com.kyhsgeekcode.disassembler.MainActivity.OnChoosePath(MainActivity.java:2266)
at com.kyhsgeekcode.disassembler.MainActivity.access$1000098(MainActivity.java)
at com.kyhsgeekcode.disassembler.MainActivity$100000026.onSelect(MainActivity.java:2095)
at com.codekidlabs.storagechooser.fragments.SecondaryChooserFragment$7$1.run(SecondaryChooserFragment.java:188)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:207)
at android.app.ActivityThread.main(ActivityThread.java:5765)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

--
Sent from myMail for Android

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.