lg888
August 27th, 2003, 00:00
can i change EIP when debug?
View Full Version : can i change EIP when debug?
//go script example #log var ptIAT mov ptIAT, 401010 go [ptIAT] log eip mov ptIAT, 401014 go [ptIAT] log eip ret |
Log data Address Message --> var ptIAT --> mov ptIAT, 401010 --> go [ptIAT] --> log eip eip: 0040102C | Entry address --> mov ptIAT, 401014 --> go [ptIAT] 00401025 INT3 command at gototest.00401025 Debugged program was unable to process exception --> log eip eip: 00401025 --> ret |
my script
go 401e67
log eip
go 401e6c
log eip
go 401e71
log eip
var ptIAT
mov ptIAT, 401e76
log [ptIAT]
go [ptIAT]
log eip
my log from above script
Log data
Address Message
eip = 00401E67
eip = 00401E6C
eip = 00401E71
[ptIAT] = 8B006A53
Process terminated, exit code 0
the code that was executed
00401E65 >/$ 6A 18 PUSH 18
00401E67 |. 68 30114000 PUSH 00401130
00401E6C |. E8 FF0C0000 CALL __SEH_prolog
00401E71 |. BB 94000000 MOV EBX, 94
00401E76 |. 53 PUSH EBX ; /HeapSize = 0
00401E77 |. 6A 00 PUSH 0 ; |Flags = 0
00401E79 |. 8B3D 34104000 MOV EDI, DWORD PTR DS:[<&KERNEL32.GetProcessHeap>] ; |kernel32.GetProcessHeap
script
var count
mov count ,0
log count
go 401e67
log eip
go 401e6c
log eip
go 401e71
log eip
mov eip,401e65
inc count
log count
go 401e67
log eip
go 401e6c
log eip
go 401e71
log eip
mov eip,401e65
inc count
log count
go 401e67
log eip
go 401e6c
log eip
go 401e71
log eip
mov eip,401e65
inc count
log count
go 401e67
log eip
go 401e6c
log eip
go 401e71
log eip
mov eip,401e65
inc count
log count
Log data
Address Message
count = 00000000
eip = 00401E67
eip = 00401E6C
eip = 00401E71
count = 00000001
eip = 00401E67
eip = 00401E6C
eip = 00401E71
count = 00000002
eip = 00401E67
eip = 00401E6C
eip = 00401E71
count = 00000003
eip = 00401E67
eip = 00401E6C
eip = 00401E71
count = 00000004
[Originally Posted by blabberer;67942]changing light bulbs after six months ![]() anyway you have got some syntax problem are you sure you require the square brackets ?? this means you are asking the script to go to the pointer pointed by your var ptiat ... |
#log
var ptIAT
mov ptIAT, 401010
go ptIAT
log eip
mov ptIAT, 401018
go ptIAT
log eip
ret
--> var ptIAT
--> mov ptIAT, 401010
--> go ptIAT
00401023 INT3 command at gototest.00401023
--> log eip
eip: 00401024
--> mov ptIAT, 401018
--> go ptIAT
Debugged program was unable to process exception
--> log eip
eip: 00401023
--> ret
00401010 . EB 00 JMP SHORT gototest.00401012
00401012 > B8 01000000 MOV EAX,1
00401017 . CC INT3
00401018 . EB 00 JMP SHORT gototest.0040101A
0040101A > B8 02000000 MOV EAX,2
0040101F . CC INT3
00401020 >/$ 90 NOP ;<<<Entry point
00401021 |. 90 NOP
00401022 |. 90 NOP
00401023 |. CC INT3
00401024 |. 50 PUSH EAX ; /ExitCode
00401025 \. E8 00000000 CALL <JMP.&kernel32.ExitProcess> ; \ExitProcess
[Originally Posted by naides;67945]Hey Blabberer, That is way to complicated! Can you make it any easier? ![]() ![]() ![]() ![]() ![]() |