Kayaker
November 21st, 2003, 00:15
Quote:
[Originally Posted by naides]May be this tutorial can give you some inspiration:
http://www.anticrack.de/modules.php?op=modload&name=News&file=article&sid=1865
It allows you to get the trace history dissasembly in printable form.
The backtrace buffer Disassembler that Kayaker posted 12/18 months ago is another alternative. |
Heheh, we'll be sending you your well deserved advertising royalties cheque soon Naides :-)
Re the PrintScreen, I'm not sure if I ever got that to work myself (or tried too hard), maybe it only works with certain keyboards/luck. The other option might be to - maximize the SI code window by toggling off the data/register windows (wd, wr), Unassemble the code you want, then /SCREENDUMP (Icedump) or !DUMPSCREEN (IceExt) to a text file. Now you still want to access that from your harddrive without breaking from SI, but you can always suspend execution by inserting the bytes EBFE at the current eip
(or typing in the command window:
a eip
jmp eip
Now you should be able to open the screendump text file, print it if you want, then CTRL-D back to SI and replace the EBFE bytes you changed and resume execution. A bit of a pain, but...
If no one minds a slight sidetrack.. this is sort of within the realms of what the old Tracedump can still do in Win2k (maybe XP), and I'm wondering if there might be any interest in this capability. There are so many good RE tools around now it seems with disassembler functions built in and such, and there are always other ways of doing the same thing. I don't really use 'tools' per se other than my own or Softice/IDA, that I don't really know if this might be unique enough to be useful to anyone else.
The Win9x app whos memory Naides kindly keeps alive is Tracedump, meant to work interactively with the Softice Backtrace command, written with the help of Clandestiny. I still use it in Win2K (without the vxd and backtrace feature) as a loader/disassembler/cum dumper. What it *can* still do is much as I described above - you can suspend execution at any time (from SI) with the 'jmp eip' trick and *disassemble* any section of user/kernel code into a listview for closer analysis/ jump/call tracing / import listing / saving to text.
A side benefit to this is that you can halt encryption/decryption sequences and get a printout of the code as it exists before it might be overwritten later. Unfortunately, the full deobfuscation of SMC code that the *Backtrace* feature of SI provided in Win9x is of course missing in Win2K without the funky BPR command.
So what I'm trying to say is - is there another app/trick capable of
- tracing in SI as usual
- suspending execution at any time (jmp eip), and then
- having a disassembler dll/listview/save function available to disassemble, in context, user or system code?
- then return to SI and continue execution, repeat as required
Note that once an app is loaded, a button click will break SI in the dll (I1HERE ON required), which is also in the context of the app itself so new breakpoints/memory changes etc. will always be made in the correct context. I also use it to dump memory for PE rebuilding, but IceExt or LordPE could be used for that, my implementation is pretty basic at the moment.
Again, there's nothing particularly remarkable about Tracedump without the old Backtrace feature, other than you can jump from ring0 -> ring3 and disassemble live code in a suspended state. Does this sound useful at all? If there doesn't *seem* to be a similar feature around, I might press on and work with the code again. If not, I'll go back to playing UnReal...
Regards,
Kayaker