Open 8secz-johndpope opened 5 years ago
You're right, that approach would be much better, as currently I support only a very limited amount of instructions. Will look into it.
vscode has smali syntax highlighting https://github.com/ViRb3/vscode-smali/tree/master/smali could this help?
if you surface any work in a new feature branch - I'm happy to take a look
@8secz-johndpope Thanks for getting back with this issue :) Took a look at it, but it's actually more confusing, since it's based on regexes. Planning to make another branch for antlr this week, per your suggestions.
to stabilise parser -
I suggest rebuilding some of the code to leverage the antlr grammar / g4 files here https://github.com/psygate/smali-antlr4-grammar
If you download this wget https://www.antlr.org/download/antlr-4.7.2-complete.jar
you can then run
this will spit out the following files / code
https://gist.github.com/8secz-johndpope/30868ccd59f211f0000b90e6176dead7
you should then be able to walk through the smali file / maybe reducing the out of bounds crashes people (including myself) have been experiencing.
For illustration - I successfully used the grammar files to build out parsers / lexers for hundreds of languages with swift https://github.com/johndpope/ANTLR-Swift-Target https://github.com/johndpope/Antlr-Swift-runtime
I forget the entry point into class / it changes for each grammar
Here is the code for swift to read a java file you can find in the above repo.
The psuedo code would be
there are other people who have created translation using antlr to do this https://github.com/8secz-johndpope/ObjcGrammar you may need some help - when I have more time I will circle back.