Posted: Mon Jun 05, 2006 7:32 am Post subject: Reverse Address Finding
Saying I have a specific address, let's say:
00123456 - je 12321321
As far as I understand, there's a line like the je saying call 00123456.
In order to find the address of that line, what should I do? what tool should I use?
P.S: sorry for making this thread at MS section aswell, I just didn't seem to get any answers there.. _________________
Joined: 12 Apr 2006 Posts: 564 Location: The Netherlands, GreenMile
Posted: Mon Jun 05, 2006 10:26 am Post subject:
well for so far i understand you i will say: "try ollydbg". Its a tool you can open .exe with. So you can find the adress and do with it what you want. if thats not what you mean... explain then _________________
Posted: Mon Jun 05, 2006 1:11 pm Post subject: Re: Reverse Address Finding
RaC wrote:
Saying I have a specific address, let's say:
00123456 - je 12321321
As far as I understand, there's a line like the je saying call 00123456.
In order to find the address of that line, what should I do? what tool should I use?
P.S: sorry for making this thread at MS section aswell, I just didn't seem to get any answers there..
I think you have 2 solutions using CE:
- set a breakpoint at 00123456 - je 12321321 and trace until the RET, after taking the RET you will be 1 line below the call 00123456.
- call 00123456 will have an opcode representation, find it out and do an "array of bytes" search using the opcode as value.
Further to cparty's second point...I'm new at this, but this what I do:
(Not sure if I 100% understand your question..but..)
Attach CE to a process that you don't care about. (I use the actual game I am working on hacking and I dont care if it crashes during this exercise).
Open up memory viewer.
Find a spot in memory that's all 00's.
Use the 'assemble' function and write 'call 00123456' to a location of your choosing that's currently all 00's.
CE might ask you a question about byte size and NOP's, choose 'yes'...
The array of bites that represents 'call 00123456' will now be stored in the memory location you've manually written to. Write them down.
USE CE to search for this array. (I search for the exact array in order as written, and also in 'reverse' cause I can't figure out which is which...)
The locations found under this seach should contain the code you need.
I have had very limited success with this because you simply cannot assume that the program 'calls' to your location 012345. It could jmp, it could je it could jne it could call..all of which has different byte arrays..
Let me know how it works cause I am staring at a similar problem...
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum