Is it possible to set a local stack variable volatile? I'm trying to reverse a program full of concurrent threads which exploit this mechanism: https://en.wikipedia.org/wiki/Setcontext to obfuscate the code, and it is very hard if ghidra eliminates "useless code" from decompilation. There is a correlated issue: https://github.com/NationalSecurityAgency/ghidra/issues/131 which doesn't solve my problem. Alredy tried to uncheck Decompiler -> Analysis -> Eliminate unreachable code. Moreover since stack is not in memory map i couldn't set it as volatile.

here is an example of what i mean


ADD        dword ptr [RBP  + local_28 ],0x1
MOV        EAX ,dword ptr [RBP  + local_28 ]
MOV        ESI ,0x4
MOV        EDI ,EAX
CALL       ctx_jumplower                                    

Translates to:


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.