PDA

View Full Version : Làm thế nào mà một file EXE thực thi được??



phongnhattran
15-11-2004, 13:49
Cho đệ hỏi 2 vấn đề :
1> Cấu trúc một File EXE như thế nào. Bây giờ đệ muốn khi chạy file EXE sẽ xuất ra màn hình chữ "HELLO", vậy dữ liệu Data của đệ (Chuỗi HELLO) nằm ở đâu trong File Exe.
2> Khi thực thi File Exe là thực ra nó làm gì ? (Load cái gì vào bộ nhớ , thứ tự như thế nào ? Và chương trình thực thi chuỗi HELLO trên như thế nào)?
Cám ơn!

pnlong
25-01-2005, 22:06
Cho đệ hỏi 2 vấn đề :
1> Cấu trúc một File EXE như thế nào. Bây giờ đệ muốn khi chạy file EXE sẽ xuất ra màn hình chữ "HELLO", vậy dữ liệu Data của đệ (Chuỗi HELLO) nằm ở đâu trong File Exe.
2> Khi thực thi File Exe là thực ra nó làm gì ? (Load cái gì vào bộ nhớ , thứ tự như thế nào ? Và chương trình thực thi chuỗi HELLO trên như thế nào)?
Cám ơn!
1)
File exe co 2 phan chinh: 1 phan la header va 1 phan la phan chuong trinh.
Header: (kick thuoc la multiple of 512 bytes): chua thong tin ve signature, kich thuoc file, check sum, gia tri con tro ip, cs, sp, ss, offset cua main, luong bo nho can them de chay .... va con thong tin ve tuong thich nua (co cai chi chay trong DOS, co cai chay windows ...)
Sau header la phan ct: phan nay chua code va data. Tuy thuoc vao compiler ma code va data duoc dat nhu the nao, vi the khong ai biet "HELLO" cua 1 ct nam o dau. Chi co mo file exe do ra moi biet thoi.
2) thuc thi file exe.
OS kiem tra format, checksum ..., kiem tra xem can bao nhieu bo nho, allocate bo nho, load code va data vao trong bo nho, sau do dat cac gia tri con tro cho dung de co the bat dau chay ham main.
Gia tri cua cac con tro khac nhau tuy vao su tuong thich: trong DOS thi khac ,trong Windows thi khac. ...