Heya,
I'm trying to do some .dll editing. However, being a 1st year ME student, all this stuff is a lil complicated for me. I have no idea where to turn to ask some of these questions, so I'll start by asking here.
I know that "TEST" performs a bitwise and between 2 values. However, here's part of pleione.dll
I see that TEST is used in a few instances like this. Do there exist any situation where that conditional jump would not be taken? I would imagine there would be... how would that be triggered?
Also, what exactly does "LEAVE" do? The definition on Wikipedia seemed to say that it behaves similarly to POP on stack memory?
And, if at some point in the code, a subroutine is called, does it run from the address called until the next RETN? In ASM, what exactly would a line like RETN 4 do? Where does the 4 get stored?
Alright... that's about all I have for now. Maybe more questions to come later. Any help would be appreciated.
I'm trying to do some .dll editing. However, being a 1st year ME student, all this stuff is a lil complicated for me. I have no idea where to turn to ask some of these questions, so I'll start by asking here.
I know that "TEST" performs a bitwise and between 2 values. However, here's part of pleione.dll
Code:
TEST EDX,EDX JE SHORT <Address>
Also, what exactly does "LEAVE" do? The definition on Wikipedia seemed to say that it behaves similarly to POP on stack memory?
And, if at some point in the code, a subroutine is called, does it run from the address called until the next RETN? In ASM, what exactly would a line like RETN 4 do? Where does the 4 get stored?
Alright... that's about all I have for now. Maybe more questions to come later. Any help would be appreciated.