asm-offsets informationen

iLu_is_a_loser

Erfahrenes Mitglied
ich bin grad am wundern wie die dasm diese informationen ausspucken können:
Code:
.text:00401000 ; File Name : C:\~~.exe
.text:00401000 ; Format : Portable executable for IBM PC (PE)
.text:00401000 ; Imagebase : 400000
.text:00401000 ; Section 1. (virtual address 00001000)
.text:00401000 ; Virtual size : 0001DE00 ( 122368.)
.text:00401000 ; Section size in file : 0001E000 ( 122880.)
.text:00401000 ; Offset to raw data for section: 00001000
.text:00401000 ; Flags 60000020: Text Executable Readable
.text:00401000 ; Alignment : 16 bytes ?
.text:00401000 ; OS type : MS Windows
.text:00401000 ; Application type: Executable 32bit
Code:
.rdata:0041F000 ; Section 2. (virtual address 0001F000)
.rdata:0041F000 ; Virtual size : 00001379 ( 4985.)
.rdata:0041F000 ; Section size in file : 00002000 ( 8192.)
.rdata:0041F000 ; Offset to raw data for section: 0001F000
.rdata:0041F000 ; Flags 40000040: Data Readable
.rdata:0041F000 ; Alignment : 16 bytes ?
nunja.. filesize und pfad etc ist ja alles ok, nur.. wie finde ich die ganzen offsets herraus.. oder bei welchem offset zb .rdata beginnt? würde mich sehr freuen über eine antwort! thx
 
mit dem link kann ich nicht arg viel anfangen ~~

gibt es keine funktion, mit der man dateiinformationen wie diese ermitteln kann
bzw weiß jemand, an welchem ort in der datei die infnormationen erhalten sind?
 
genau das was ich wollte nur.. ich weiß nich warum ich die informationen aus dem struct nicht rauspicken kann o.O ?
Code:
#include <windows.h>
#include <iostream>
#include <Imagehlp.h>
#pragma comment(lib, "Imagehlp.lib") 
int main()
{
 PLOADED_IMAGE PLOADED_IMAGE = ImageLoad("winsock","C:\\WINDOWS\\system32");
 printf("%s\n",PLOADED_IMAGE.ModuleName);
 ImageUnload(PLOADED_IMAGE);
 return 0;
}
 
Code:
PLOADED_IMAGE pImg = ImageLoad("ws2_32.dll","C:\\WINDOWS\\system32");
 printf("%s\n",pImg->ModuleName);
 ImageUnload(pImg);

pImg ist ein Pointer auf eine LOADED_IMAGE Struktur, von daher pickst du die Infos mit einem -> raus
Dass das mit winsock.dll nicht hingehauen hat, liegt sicher daran das diese dll eine 16bit dll ist.
 
Zurück