sgdt
January 30th, 2004, 20:49
Quote:
[Originally Posted by yaa]Any good (and recent) tutorial around to start using IDA???
BTW what scares me about using tools such as IDA is the dead listing approach I expect instrinsic in them ...
Algorithms are often complex, expecially if they intentionally try to obfuscate what really gets done. How can a dead listing approach be of any use in such a world???
yaa |
Actually, there are a lot of tutorials out there. Google turns up a number of them, especially when you combine "softice" as a keyword.
Anyway, I think your inverting the point. Obfuscation is a LOT easier to get around in IDA than anything else I can think of. And being able to have a program draw up a chart of potential flows of code? It makes short work of most key check routines. You VISUALLY see the flow, it almost makes things TOO EASY!
There are, however, three downsides.
First, is that for complex polymorphic code (comlex packers and the like), it would be impractical to do an IDC script to unpack. So, dumping is nearly always done in OllyDbg or SoftIce *prior* to bringing up IDA. Simple XOR or the like, yeah, no problem. But IDC script wouldn't stand up to the likes of ASProtect. Dump first.
The second downside of IDA is initial load time. It can take many minutes to rip a meg EXE on my P2 laptop. A four meg exe can take a lot longer (it loves memory, and my lowly laptop hasn't got much).
The third downside is that it's not intuitive about programs created in Delphi. There are a few, and it would be nice if IDA handled Delphi targets the same way PE Explorer does. (If you ever run into a Delphi target, use PE Explorer!!!).
OK, back to good stuff. You run W32Param.IDC after loading, and now you have sensible variable names for all that code making Win32 calls. Variables that you can look at visually and see what set them, you click on a variable that got assigned someplace else, and you can see all the places that set or referenced it. It's Way Cool.
Enumerations and structures, including almost everything in the Win32 SDK, it's all there. A *FOLDING* editor!!! God, did DataRescue think of everything?
You almost don't need a debugger.
In case you didn't sense my happiness, IDA is PERFECT at reversing code. Yeah, you can crack stuff, but it is GREAT for reversing to! You have a feature you want in your program, and a program that does it nicely? It's damn close to cut and past to source code. Or you want to add a feature to someones EXE, and you want to make sure there won't be any ill effects caused by dependancies that aren't obvious? I mean, it's nearly impossible to hide stuf from IDA.
Bring up Google, find some recent tutorials, and then head to your favorite server to download (or, buy it. Wish I could right now, but I'm broke. God has BPX'd me..).