I have disassembled the file WinLoad.exe as a 32-bit PE for i386 ISA, and I'll show some of the instructions I do not get are for:
call 0x00408b6d <---
test al,al
je 0x0040109f
lea eax,[esp+0x20] <---
First of all, what is at the memory address the call instruction is at? Second, what is the leave instruction do?
cmp BYTE PTR [esp+0x12],0x0 <---
mov eax,DWORD PTR [esp+0x20]
mov DWORD PTR [esp+0x1c],eax
Third, how does the compare instruction make sense?
Last, what does this do?
rep movs DWORD PTR es:[edi],DWORD PTR ds:[esi]
Also, how I can tell if this file is statically or dynamically linked? I mean, when executed, if it's statically linked it must've been compiled that way. If dynamic there must be other program running. Basically, this is suppose to be the first executable on boot of a PE.
REP
commands are always a type of loop that copies everything from one thing to another thing. likememcpy
I usually use IDA PRO to figure out what each assembly instruction does. NOP alot of code at some address in some application and assemble which ASM you want to figure out then PressF5
and see what the code translates too in C for IDA PRO.winload.exe
is NOT the first PE.bootmgr.exe
is the first PE to run in the boot process of Windows NT6. See www.nvlabs.in/uploads/projects/vbootkit/nitin_vipin_vista_vbootkit.ppt .bootmgr.exe
is embedded inside the filebootmgr
that you can find on your system partition.