Valhalla Legends Forums Archive | Advanced programming | Getting Started With Disassembly

AuthorMessageTime
R.a.B.B.i.T<newbishrant>Alrighty, I've read a bit about this so far, but I'm gonna ask anyway: how should I go about disassembling things?  Specifically, at the moment, such things as storm.dll.  I am deeply interested this now (mostly because of the text-display thread in botdev), and I'm curious.  I've got what I need (or so Google says), but I still don't know where to start.  Sooooo, any help?</newbishrant>June 16, 2005, 10:31 pm
BlazeI would suggest IDA as your disassembler.  Its the best I've ever seen.June 16, 2005, 11:44 pm
Lord[nK]
<newbishrant>Alrighty, I've read a bit about this so far, but I'm gonna ask anyway: how should I go about disassembling things?  Specifically, at the moment, such things as storm.dll.  I am deeply interested this now (mostly because of the text-display thread in botdev), and I'm curious.  I've got what I need (or so Google says), but I still don't know where to start.  Sooooo, any help?</newbishrant>

It depends on what exactly it is that you're attempting to reverse.
June 17, 2005, 01:58 am
OnlyMeat
I am deeply interested this now (mostly because of the text-display thread in botdev), and I'm curious.

Well if you want to find the function that displays text in sc for example, you could follow a procedure like this:-

(1) Download/install tools. softice(debugger) + memory searcher tool - TSearch/Cheat-o-matic (just something simple to search for strings in sc's address space).

(2) Run starcraft and load [memory searcher tool] attaching to Starcraft.exe. Now type in a string of text in a sc game, then quicky alt+tab to [memory searcher tool] and search for the string you just typed.

Once you find it make a note of the address. Note searching for values can give multiple candidate addresses sometimes so you might need to do it a few times and test the various result addresses.

In theory the address should point to the memory location where the string is being stored.

(3) Load up softice(ctrl+d), bpm(break-point memory access) [address] then type X to continue execution. You then need to type another string into sc. If everything went well softice should popup a break point on the address you specified in the bpm command.

(4) Now if you get that far, you are in business because you can now trace the call stack for that memory address access. Softice has various tracing commands and a call stack display, to display the call stack type STACK. From there you can find out exactly what calls where made.

(5) After doing some call stack tracing you should beable to find the function ordinals you want for displaying text in sc.

This is just off the top of my head remember. It may not be the exact procedure, but it will be something like this. Atleast thats how i would approach it.
June 17, 2005, 08:44 am
R.a.B.B.i.TI'm using IDA, WinDbg, and TSearch.  SoftICE is....hard to obtain.  And yes, atm I'm focusing on doing some reversing on Starcraft, mostly because help is so redily available for that specific project (ie: here).June 17, 2005, 06:31 pm
NicoQwertyuI just got Softice today.  My computer locks up when running it, however.  Softice works though -- regardless of if Windows does!June 17, 2005, 08:20 pm
OnlyMeat
I'm using IDA, WinDbg, and TSearch.  SoftICE is....hard to obtain.  And yes, atm I'm focusing on doing some reversing on Starcraft, mostly because help is so redily available for that specific project (ie: here).

If you really want softice, i can send you the numega suite. I think it's like 150mb or something.
June 17, 2005, 11:12 pm
KpStart at 401000. WinkJune 17, 2005, 11:15 pm
OnlyMeat
Start at 401000. Wink

I think he wants to learn to disassemble, not just given the offsets.
June 18, 2005, 12:08 am
WarriorNothing wrong with a gentle shove TongueJune 18, 2005, 12:21 am
tA-KaneI use IDA + OllyDbg + Notepad.

In my opinion, your best bet to "getting started with disassembly" is to write a small program (hello world should work fine). Open it in IDA and go from there. If you've written other small programs, open them up as well and see if you can make heads or tails out of it.


If you're going more for the ... ermm ... devious ... side of things, you could get a buddy of yours to write a small program and have you try to crack it. I found that to be an excellent jump-start into being ... devious.
June 18, 2005, 02:01 am
R.a.B.B.i.TI found the offsets in Starcraft (Warrior said "search for stuff you type", then I found the GameThread tut, why'd I have to do it the hard way?).  I was also changing the text using TSearch, but the tut talked about timers and shit...and I don't want to deal with them yet.  I do want SoftICE, but couldn't you just F3 the numega site for the installer/download w/e?June 18, 2005, 02:42 pm
Soul TakerLast I knew, they it cost money to obtain it from their site.June 18, 2005, 03:41 pm
R.a.B.B.i.THence the old saved site....June 18, 2005, 07:44 pm
DarknessI found this website, might be interesting to you:
http://members.home.nl/code.inside/tutorials.html
June 23, 2005, 01:43 pm
R.a.B.B.i.TThat is really helpful...June 23, 2005, 05:39 pm