You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
If one wants to implement some work related to RZIL, but without intention to implement analysis plugin that will help with lifting (rz_analysis.h), there is no means to do it without digging into core_private.h or cmd_descs.h headers, that is private and not accessible by default. It provides useful things - Init and start VM on current addr for core pointer, print vm state and so on.
Public headers in rz_il.h provide only low-level VM procs rz_core.h includes useful procs, but only for ESIL, and not RZIL
Describe the solution you'd like
Expose and describe useful RZIL API in public header rz_core.h, as its already done for ESIL, or implement it in some other way.
rz_core.h
/*cil.c */
// TODO : They should have been there, but require `static` vars inside canalysis.c
// : Keep esil in canalysis.c, and split the rzil in cil.c
RZ_API void rz_core_analysis_esil(RzCore *core, ut64 addr, ut64 size, RZ_NULLABLE RzAnalysisFunction *fcn);
RZ_API bool rz_core_esil_cmd(RzAnalysisEsil *esil, const char *cmd, ut64 a1, ut64 a2);
RZ_API int rz_core_esil_step(RzCore *core, ut64 until_addr, const char *until_expr, ut64 *prev_addr, bool stepOver);
RZ_API int rz_core_esil_step_back(RzCore *core);
RZ_API bool rz_core_esil_dumpstack(RzAnalysisEsil *esil);
RZ_API bool rz_core_esil_continue_back(RZ_NONNULL RzCore *core);
RZ_API void rz_core_analysis_esil_step_over(RZ_NONNULL RzCore *core);
RZ_API void rz_core_analysis_esil_reinit(RZ_NONNULL RzCore *core);
RZ_API void rz_core_analysis_esil_deinit(RZ_NONNULL RzCore *core);
RZ_API void rz_core_analysis_esil_init_mem(RZ_NONNULL RzCore *core, RZ_NULLABLE const char *name, ut64 addr, ut32 size);
RZ_API void rz_core_analysis_esil_init_mem_del(RZ_NONNULL RzCore *core, RZ_NULLABLE const char *name, ut64 addr, ut32 size);
RZ_API void rz_core_analysis_esil_init_regs(RZ_NONNULL RzCore *core);
upd:
Such useful functions is already defined in cil.c, but they are not exposed in rz_core.
The text was updated successfully, but these errors were encountered:
ogre2007
changed the title
RZIL public API
RZIL public API for core plugins
Oct 31, 2022
Is your feature request related to a problem? Please describe.
If one wants to implement some work related to RZIL, but without intention to implement analysis plugin that will help with lifting (
rz_analysis.h
), there is no means to do it without digging intocore_private.h
orcmd_descs.h
headers, that is private and not accessible by default. It provides useful things - Init and start VM on current addr for core pointer, print vm state and so on.Public headers in
rz_il.h
provide only low-level VM procsrz_core.h
includes useful procs, but only for ESIL, and not RZILDescribe the solution you'd like
Expose and describe useful RZIL API in public header
rz_core.h
, as its already done for ESIL, or implement it in some other way.upd:
Such useful functions is already defined in
cil.c
, but they are not exposed in rz_core.The text was updated successfully, but these errors were encountered: