To research and analyze third-party programs properly, you’ll need a small collection of tools and software programs. The following sections describe our toolkit and methods we’ve used to locate vulnerable programs.
IDA Pro + Windows CE Debugger ($490)
The Interactive Disassembler (IDA) is first and foremost a disassembler, which means that it can take a binary file (.EXE, .DLL, and so on) and convert it from its native version (which the processor understands) to a much more reader-friendly format know as opcodes. Because every processor type speaks its own language, IDA must determine the processor for which the target file is built, then parse out the opcodes, rebuild the functions of the program, determine how they’re all linked, determine what other executables are required for the binary to execute, and provide links to those files as well.
IDA is also a debugger. This means that IDA can connect into or start a process on a device and allow the user to step through the operations that the processor is performing. In addition, IDA also allows the user to alter memory on the fly, change processor values, and pretty much have full control over the target system.
Finally, IDA is interactive and programmable, which means that people can build scripts to automate various functions and features. One such add-on is the Windows CE Debugger DLL that you must purchase from IDA if you’re going to use it with a Windows CE device.
If you want to debug crashes or look for vulnerabilities for Windows Mobile, IDA Pro is an essential tool.
Windows Mobile Device (~$200)
Since we’re debugging Windows Mobile (WM) applications, you may want to invest in a Windows Mobile device on which to test the applications. Make sure that your device is compatible with the Window CE Debugger from IDA. We’ve experienced a few quirks with certain WM phones; however, our Dell Axim X51v PDA works great with IDA. The other option is to download the Windows Mobile SDKs and use an emulator (discussed in the next section).
Visual Studio with Windows Mobile SDKs (~$250)
If you’re a developer for Windows Mobile applications, you probably already have Microsoft’s Visual Studio platform. If not, consider purchasing the Visual Studio 2005 Standard application. It includes some tools that are handy for probing Windows Mobile devices, but most importantly it allows you to load images in its emulator if you download the Windows Mobile 5/6 SDKs. As a result, you can use IDA Pro to reverse-engineer an application without the need for a physical device. Not only does this technique ensure that you won’t brick a PDA (which we’ve done), but it also makes for a fast debugging session.
That’s it. Granted, you’ve had to invest in some new technology, but the upside is that you’ll also have software/hardware that can be used for other purposes.