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

ESIL to RZIL conversion #2080

Open
19 of 38 tasks
XVilka opened this issue Dec 9, 2021 · 5 comments
Open
19 of 38 tasks

ESIL to RZIL conversion #2080

XVilka opened this issue Dec 9, 2021 · 5 comments

Comments

@XVilka
Copy link
Member

XVilka commented Dec 9, 2021

First stage

High-priority

The rest

Second stage

Cutter

Other

  • rz-ghidra (remove ESIL use)
  • jsdec
  • rz-retdec
  • rz-lang (Python RzAnalysis plugin API)
  • rizin-extras (probably remove plugins that rely on ESIL completely)
  • Cutter

RzAnalysis

$ rg -t c "esil" librz/core/ -l
librz/arch/serialize_analysis.c # isn't really used, relevant lines can be removed from the file
librz/arch/var.c
librz/arch/il/analysis_il_trace.c
librz/arch/op.c # isn't really used, relevant lines can be removed from the file
librz/arch/hint.c # isn't really used, relevant lines can be removed from the file
librz/arch/analysis.c # isn't really used, relevant lines can be removed from the file
librz/arch/fcn.c

RzDebug

librz/debug/p/debug_io.c
librz/debug/p/native/bt/generic-x64.c
librz/debug/p/native/bt/generic-x86.c
librz/debug/desil.c
librz/debug/trace.c

RzCore

$ rg -t c "esil" librz/core/ -l
librz/core/cprint.c # isn't really used, relevant lines can be removed from the file
librz/core/casm.c # isn't really used, relevant lines can be removed from the file
librz/core/cil.c
librz/core/analysis_objc.c 
librz/core/cdebug.c
librz/core/ctypes.c
librz/core/project_migrate.c # isn't really used, we should remove all ESIL-related information during the migration
librz/core/analysis_tp.c
librz/core/disasm.c 
librz/core/cmd_descs/cmd_descs.h # just remove no longer necessary command handlers
librz/core/tui/visual.c # isn't really used, relevant lines can be removed from the file
librz/core/cmd_descs/cmd_descs.c # just remove no longer necessary command handlers
librz/core/tui/esil.c # This one can be simply removed
librz/core/tui/biteditor.c # Should print RzIL instead
librz/core/tui/panels.c # Should be substituted with RzIL emulation
librz/core/cconfig.c # ESIL relevant options and callbacks could be removed, new options for RzIL should be created
librz/core/agraph.c # isn't really used, relevant lines can be removed from the file
librz/core/core_private.h # isn't really used, relevant lines can be removed from the file
librz/core/cesil.c # This one can be simply removed 
librz/core/cmd/cmd_debug.c
librz/core/cmd/cmd_search.c
librz/core/canalysis.c 
librz/core/cmd/cmd_search_rop.c
librz/core/cmd/cmd_print.c
librz/core/cmd/cmd_analysis.c
@pelijah

This comment was marked as resolved.

@thestr4ng3r

This comment was marked as resolved.

@XVilka XVilka pinned this issue Jan 27, 2023
@Gauravjadhav22

This comment was marked as spam.

@rizinorg rizinorg deleted a comment from Gauravjadhav22 Feb 3, 2023
@XVilka

This comment was marked as outdated.

@XVilka
Copy link
Member Author

XVilka commented Sep 19, 2023

I looked at some code that uses ESIL, e.g. librz/analysis/var.c (and a trivial piece of code at librz/analysis/fcn.c) or librz/core/analysis_tp.c - the use of ESIL could be conditional, if ESIL is chosen, and can use a different code path/function if the RzIL is chosen.

These could be the first steps on switching from ESIL to RzIL without breaking compatibility for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
RzIL
To do
Development

No branches or pull requests

8 participants