Skip to content
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

DJump can't be cast to DJumpCondition #16

Open
Headline opened this issue Nov 8, 2019 · 4 comments
Open

DJump can't be cast to DJumpCondition #16

Headline opened this issue Nov 8, 2019 · 4 comments

Comments

@Headline
Copy link

Headline commented Nov 8, 2019

Observed in error logs for headlinedev.xyz/lysis

java.lang.ClassCastException: lysis.nodes.types.DJump cannot be cast to lysis.nodes.types.DJumpCondition
	at lysis.builder.structure.SourceStructureBuilder.buildLogicChain(SourceStructureBuilder.java:171)
	at lysis.builder.structure.SourceStructureBuilder.traverseComplexIf(SourceStructureBuilder.java:271)
	at lysis.builder.structure.SourceStructureBuilder.traverseIf(SourceStructureBuilder.java:359)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlockNoLoop(SourceStructureBuilder.java:598)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlock(SourceStructureBuilder.java:632)
	at lysis.builder.structure.SourceStructureBuilder.traverseJoin(SourceStructureBuilder.java:591)
	at lysis.builder.structure.SourceStructureBuilder.traverseIf(SourceStructureBuilder.java:402)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlockNoLoop(SourceStructureBuilder.java:598)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlock(SourceStructureBuilder.java:632)
	at lysis.builder.structure.SourceStructureBuilder.traverseJoin(SourceStructureBuilder.java:591)
	at lysis.builder.structure.SourceStructureBuilder.traverseIf(SourceStructureBuilder.java:402)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlockNoLoop(SourceStructureBuilder.java:598)
	at lysis.builder.structure.SourceStructureBuilder.traverseBlock(SourceStructureBuilder.java:632)
	at lysis.builder.structure.SourceStructureBuilder.build(SourceStructureBuilder.java:636)
	at lysis.Lysis.DumpMethod(Lysis.java:132)
	at lysis.Lysis.main(Lysis.java:198)
@peace-maker
Copy link
Owner

It's hard to debug these without a test case.

@Headline
Copy link
Author

Headline commented Nov 8, 2019

Yeah I figured that would be the case, of course I don't keep copies of binaries on the web server. If I get any emails containing binaries that are failing to decompile I'll let you know. The same goes for #15

@afwn90cj93201nixr2e1re
Copy link

@peace-maker @Headline possible heap errors related to natives which are returns array. Like native []fmt in amxmodx.

@afwn90cj93201nixr2e1re
Copy link

afwn90cj93201nixr2e1re commented Aug 12, 2020

@peace-maker @Headline
изображение

PoC.

Also there's one more problem, for example in AmxModX there's public stock MaxClients, and any 0 symbol in file replaced with MaxClients, due it's the first created new.
изображение
Just.. you know.

And one more, there's not completed parsing of array of arrays.
изображение
изображение
ending up with first symbol only.
изображение

btw disassambler by ltrat works with that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants