New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DebugInjector: better recognition of register types #134

Closed
iBotPeaches opened this Issue Mar 18, 2015 · 3 comments

Comments

Projects
None yet
1 participant
@iBotPeaches
Owner

iBotPeaches commented Mar 18, 2015

Original issue 24 created by Brut.alll on 2010-04-28T21:04:02.000Z:

Currently recognition is based on opcodes only. You will see many
misinterpreted variables (shown as ints). We could enhance recognition
capabilities:

  • track type of result register. This will fix most of issues.
  • track register types. This will fix "move*" instructions and should be
    really easy to add.
  • interpretation of forward invokes, puts, etc. This should fix all or
    nearly all of issues, but will be quite hard to add.
@iBotPeaches

This comment has been minimized.

Show comment
Hide comment
@iBotPeaches

iBotPeaches Mar 18, 2015

Owner

Comment #1 originally posted by Brut.alll on 2010-04-29T08:10:47.000Z:

There is another way to do this. JF already created decent code analyzer, definitely
better, that I will ever make. It can guess exact type of any register in any line of
code.

Unfortunately it requires BOOTCLASSPATH jars to build up classes inheritance tree and
these jars are several MB large.

But... I don't need exact information on types: I need information whether register
is boolean, integer or "reference to something" and that "something" will be deduced
by debugger at runtime. I think it should be doable analyzing current method only,
information on ancestors aren't needed.

Fortunately smali is OS project, so I can look into its code :-)

Owner

iBotPeaches commented Mar 18, 2015

Comment #1 originally posted by Brut.alll on 2010-04-29T08:10:47.000Z:

There is another way to do this. JF already created decent code analyzer, definitely
better, that I will ever make. It can guess exact type of any register in any line of
code.

Unfortunately it requires BOOTCLASSPATH jars to build up classes inheritance tree and
these jars are several MB large.

But... I don't need exact information on types: I need information whether register
is boolean, integer or "reference to something" and that "something" will be deduced
by debugger at runtime. I think it should be doable analyzing current method only,
information on ancestors aren't needed.

Fortunately smali is OS project, so I can look into its code :-)

@iBotPeaches

This comment has been minimized.

Show comment
Hide comment
@iBotPeaches

iBotPeaches Mar 18, 2015

Owner

Comment #2 originally posted by Brut.alll on 2010-04-29T15:04:54.000Z:

I have successfully hacked baksmali to use its analyzer for smali debugging purposes
:-) It would be better if it could be done without hacking - maybe JF will update
smali.

Owner

iBotPeaches commented Mar 18, 2015

Comment #2 originally posted by Brut.alll on 2010-04-29T15:04:54.000Z:

I have successfully hacked baksmali to use its analyzer for smali debugging purposes
:-) It would be better if it could be done without hacking - maybe JF will update
smali.

@iBotPeaches

This comment has been minimized.

Show comment
Hide comment
@iBotPeaches

iBotPeaches Mar 18, 2015

Owner

Comment #3 originally posted by Brut.alll on 2010-04-29T20:33:32.000Z:

<empty>

Owner

iBotPeaches commented Mar 18, 2015

Comment #3 originally posted by Brut.alll on 2010-04-29T20:33:32.000Z:

<empty>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment