Giter Club home page Giter Club logo

yhs0602 / android-disassembler Goto Github PK

View Code? Open in Web Editor NEW
570.0 23.0 91.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 Issues

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)

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 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

Add root file browser

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

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

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 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)

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)

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

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 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 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)

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.

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.

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 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

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

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)

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 @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 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 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

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

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

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

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 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)

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)

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 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

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 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)

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)

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

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 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)

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

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.