3/7/2024 0 Comments Barn finds in forza horizon 5I think that Ghidra has the right sauce to do it (a large community) but it will be a while before that community can organically produce the same results.ĭue to these heuristics IDA produces real actionable code quicker. This isn't knowledge that is easy to acquire or maintain. Hex Rays has dedicated an entire company to finding these heuristics in many compilers across many platforms. As a result a good decompiler also includes heuristics that are expensive to create and learn about. Every compiler speaks it's own dialect of assembly, and different compilers prefer different optimizations, code removal, etc as a strategy. However, there's a ton of stuff that is missed in this base level. The working theory of most decompilers, including Ghidra's, is to have a base level of "translation" ability between asm and C (for example). Sure, the thing about decompilation is it's by nature taking lossy data and trying to turn it into something that is almost lossless. I find this flow works really, really well. Then, the user can tell it "Those two variables are actually the same, please treat them as one". All variables start out as "split" as it can make it (almost in static single assignment form). But Ghidra has no way to say, "hey, from this assignment on, treat `x` as another variable", so you have to either generate a union (ugly) or deal with sending the wrong type (also ugly). The problem is, sometimes, x needs to be an int for the first function, and a bitflag structure for the second. Sometimes, ghidra will have some code that looks roughly like: One of the annoying bits of ghidra (though it may have improved, it's been around a year since I last used it) is that there's no way to "split" a variable. It may sometime get a bit lost if you give conflicting types to dependant variables, but otherwise, it's pretty good at this. When you assert a type, it will usually not ignore it. IDA decompiler is quite a bit more flexible than Ghidra's. This is the thing that sticks out the most IMO. > - Decompiler too stubborn sometimes, ignoring user input (e.g. Instead, I would be interested in learning about more fundamental differences between the two decompilers. But instead of displaying a warning it just shows you the part it could decompile and you have to figure out by yourself that something is missing.īut most of the above issues are fixable. Quite dangerous: Sometimes the decompiler gets lost, especially if a function contains handwritten assembly code with unusual control flows. Decompiler needs better heuristics for the treatment of some common cases (e.g., often doesn't recognize for-loops and array accesses) Decompiler too stubborn sometimes, ignoring user input (e.g. Too many frequently-used dialogs are not optimized for keyboard usage. Maybe ML trained on source code? Function signatures of the latest malware?Īfter several hundred hours with Ghidra, I think it certainly would need some polishing, in particular: obfuscated code)? I heard about their cloud-based stuff, although I don't know what they are exactly doing there. C++, Windows), or for a specific use case (e.g. Is it better in general, for a specific programming language or platform (e.g. Strictly no comments & posts about piracy, exploits, scripts, third party software, cheating tools, or any other sort of unauthorized game modification.Īll wishlists must contain direct links to their respective posts for voting on in either the post itself or its comments.Can you elaborate? I would really like to see what the HexRay decompiler does better (or worse) than Ghidra, but I am too poor to buy it (and is not interactive, so I cannot edit function signatures to "help" the decompiler etc.). No posts showing what you got from a wheelspin, got as an in-game gift, or what you are gifting. For car trading head over to /r/ForzaAuctions. No game sharing requests and no posts involving real money. No posts involving selling, buying, trading and giving away cars. This includes, but is not limited to pictures of screens taken by phone (unless necessary), low resolution images, uncropped screenshots, intentionally misleading content and misinformation, posts missing proper punctuation, non-descriptive titles and reposts. Low effort posts will be removed at the discretion of the mods. No begging for upvotes, views, plays, likes, shares, downloads, votes, visits, etc. Posts about Forza Motorsport and real life cars are only allowed in the 'suggesting car to be added' context, which must be clearly noticeable. Strictly no politics and related inappropriate topics, including references. Posts must be directly related to the Forza Horizon series and in english. No NSFW, brigading, witch hunting or harassing other users. A place to share, discuss and celebrate everything about the Forza Horizon series!īe good to each other, follow reddiquette when posting or commenting.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |