This PR add a plug-in example for IDA, based on Miasm symbolic execution engine. It also features the
The common code between IDA examples has been moved to
Thanks you !
I've add the possibility to get back an equivalent Miasm2 expression in its Python form.
That is to say:
>>> expr = ExprAff(ExprId('nf', size=1), ExprSlice(ExprOp('+', ExprId('EDX_init', size=32), ExprMem(ExprOp('+', ExprMem(ExprId('ESP_init', size=32), size=32), ExprInt_fromsize(32, 0x24)), size=32)), 31, 32)) >>> print expr nf = (EDX_init+@32[(@32[ESP_init]+0x24)])[31:32]
An infinite loop was reached in a corner case of Variable Identifier (reported by @serpilliere).
One of the commit also add the prefix feature, which result in:
of_v0 = @32[@32[ESP_init] + 0x24] of_v1 = EDX_init of = ((of_v1 ^ of_v0 ^ 0xFFFFFFFF) & (of_v0 ^ (of_v1 + of_v0)))[31:32] cf_v0 = EDX_init cf_v1 = @32[@32[ESP_init] + 0x24] cf_v2 = cf_v0 + cf_v1 cf = (cf_v0 ^ cf_v1 ^ ((cf_v0 ^ cf_v1 ^ 0xFFFFFFFF) & (cf_v1 ^ cf_v2)) ^ cf_v2)[31:32]
That way, the IDA highlighting of variables can be used in a clever way.