sBoff
February 27th, 2007, 04:01
Hi people.
Ive been programming for many years now and recently been bitten by the want to get a better understanding of more low level detail. Ive been using OllyDbg to modify my Win32 C programe, it automatically checks my email.
The thing i cant quite understand is when i modify one line of the code in OllyDbg is automatically changes a couple of lines below the line as well.. I was just wondering if its supposed to do that and why?
Here is the example. Note: im changing the PUSH EAX line (00403954) by doubble clicking on it and typing "PUSH 0000000A" and pressing "Assemble".
The code above gets changed to
P.S. what does the "Fill with NOP's" do? Full what with NOPs??
Thanks for the help
Ive been programming for many years now and recently been bitten by the want to get a better understanding of more low level detail. Ive been using OllyDbg to modify my Win32 C programe, it automatically checks my email.
The thing i cant quite understand is when i modify one line of the code in OllyDbg is automatically changes a couple of lines below the line as well.. I was just wondering if its supposed to do that and why?
Here is the example. Note: im changing the PUSH EAX line (00403954) by doubble clicking on it and typing "PUSH 0000000A" and pressing "Assemble".
Code:
0040393C . 74 2E JE SHORT CheckIt.0040396C
0040393E . 83F8 FF CMP EAX,-1
00403941 . 74 22 JE SHORT CheckIt.00403965
00403943 . 3BC3 CMP EAX,EBX
00403945 . 76 0D JBE SHORT CheckIt.00403954
00403947 . 0105 58714000 ADD DWORD PTR DS:[407158],EAX
0040394D . C605 55714000 01 MOV BYTE PTR DS:[407155],1
00403954 > 50 PUSH EAX
00403955 . 8D45 20 LEA EAX,DWORD PTR SS:[EBP+20]
00403958 . 68 C0554000 PUSH CheckIt.004055C0 ; ASCII "%d New Message(s)"
0040395D . 50 PUSH EAX
0040395E . FFD6 CALL ESI
00403960 . 83C4 0C ADD ESP,0C
00403963 . EB 1E JMP SHORT CheckIt.00403983
The code above gets changed to
Code:
0040393C . 74 2E JE SHORT CheckIt.0040396C
0040393E . 83F8 FF CMP EAX,-1
00403941 . 74 22 JE SHORT CheckIt.00403965
00403943 . 3BC3 CMP EAX,EBX
00403945 . 76 0D JBE SHORT CheckIt.00403954
00403947 . 0105 58714000 ADD DWORD PTR DS:[407158],EAX
0040394D . C605 55714000 01 MOV BYTE PTR DS:[407155],1
00403954 6A 0A PUSH 0A
00403956 45 INC EBP
00403957 2068 C0 AND BYTE PTR DS:[EAX-40],CH
0040395A ? 55 PUSH EBP
0040395B ? 40 INC EAX
0040395C ? 0050 FF ADD BYTE PTR DS:[EAX-1],DL
0040395F ? D6 SALC
00403960 . 83C4 0C ADD ESP,0C
00403963 . EB 1E JMP SHORT CheckIt.00403983
P.S. what does the "Fill with NOP's" do? Full what with NOPs??
Thanks for the help
