About ------- This script was written to facilitate working with functions and relocatable code where you don't really want to re-base your database yet still jump to addresses correctly w/o rebasing. In case of bugs, comments or suggestions write me to lallousx86 at yahoo dot com Usage ------ "=address" - Set's new first segment's base VA. For example, when working with SoftICE and debugging a device driver or a DLL and the module is relocated and does not match your database's base. You can either use IDA's "rebase" command (and keep rebasing almost everytime the base changes) or use this command w/o rebasing. Say your DLL has .text and its on-disk section header is like: .text va=10001000 (rva+imagebase) Once loaded it will be re-based, say to: .text va=01981000 To solve this, you can Jump+ "=01981000" to set first segment's base, then subsequent jumps using J+ can be like this: "1981123" etc.... "+bytes" - This will jump +bytes from the current segment's start Useful when you have address like ".text+123" , that way in IDA you can J+ to "+123" "." - Goes to top of function. "_" - Goes to end of function. "?" - Computes size of function ".." - Goes to segment's start "__" - Goes to segment's end "address" - Goes to address in VA form. Check the "=" command. VA does not have to exist in the database, J+ will compute new VA and map it to existing VA in the database. "w" - Generates functionname.asm file into the database's directory. ">" - Goes to next function "<" - Goes to previous function "undo" - this is useful if you have heavily patched a function and you want to restore it to its original state. "i" - Displays internal variables / information "rb filename" - Reads the filename into the current selection. If no selection then into whole function "wb filename" - Writes to filename the current selection. If no selection then the whole function is writte "len" - Displays the lengths of a given selection or function