<div dir="ltr">I've been playing around with Ghidra for a couple of days now. Here's my findings...<div><br></div><div>What I liked:</div><div>- Wide range of supported architectures.</div><div>- Built-in architecture-agnostic decompiler that seems to do a pretty decent job.</div><div>- Undo functionality.</div><div><br></div><div>What I didn't like or couldn't figure out:</div><div>- There's an "Apply Enum", but how do you replace scalars with struct field offsets or struct sizes like you can in IDA? The decompiler can often work this out, but that won't help when you're working on handwritten assembly code that can't be decompiled.</div><div>- (real-mode x86) When an offset is assigned to a register (and as such there is no segment directly associated with that offset at this time, e.g. MOV SI,0x1234), how do I tell Ghidra that 0x1234 is actually "offset Foo" in (say) DS. When SI is later used to read from memory, the assembly listing will correctly display the memory location, but I'd also like to see it when the offset is assigned to SI. Note: the decompiler seems broken for this scenario and insists on using CS for the memory read no matter what I tried.</div><div>- No library/interrupt recognition.</div><div><br></div><div>I tested it on 6502 code, where it performed reasonably well. For real-mode x86 it felt nearly unusable, due to the segment-related issues mentioned above. There's a lot of potential here though, and if Ghidra improves over time, I can see it becoming my main reverse engineering tool. Right now, however, I don't think it's ready to replace IDA.</div><div><br></div><div>If anyone got real-mode x86 to work properly in Ghidra, I'd love to hear about it.</div><div><br></div><div>Kind regards,</div><div><br></div><div>Walter van Niftrik</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Op do 7 mrt. 2019 om 00:15 schreef Filippos Karapetis <<a href="mailto:bluegr@gmail.com">bluegr@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Great news!</div><div dir="auto"><br></div><div dir="auto">Yesterday, NSA (yes, THAT NSA) released a FOSS RE toolkit. It’s written in Java, it’s comparable to IDA and it’s free and open source!</div><div dir="auto"><br></div><div dir="auto">You can read all about it here:</div><div dir="auto"><a href="https://www.zdnet.com/article/nsa-release-ghidra-a-free-software-reverse-engineering-toolkit/" target="_blank">https://www.zdnet.com/article/nsa-release-ghidra-a-free-software-reverse-engineering-toolkit/</a><br></div><div dir="auto"><br></div><div dir="auto">Website:</div><div dir="auto"><div><a href="https://ghidra-sre.org/" target="_blank">https://ghidra-sre.org/</a></div><br></div><div dir="auto">Regards</div><div dir="auto">Filippos Karapetis</div>-- <br><div dir="ltr" class="gmail-m_-8775138925934327922gmail_signature">"Experience is the name every one gives to their mistakes" - Oscar Wilde </div>
_______________________________________________<br>
Scummvm-devel mailing list<br>
<a href="mailto:Scummvm-devel@lists.scummvm.org" target="_blank">Scummvm-devel@lists.scummvm.org</a><br>
<a href="https://lists.scummvm.org/listinfo/scummvm-devel" rel="noreferrer" target="_blank">https://lists.scummvm.org/listinfo/scummvm-devel</a><br>
</blockquote></div>