Chủ đề: ASM ứng dụng nhỏ hiểu thêm VC++
-
16-08-2009, 08:03 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
ASM ứng dụng nhỏ hiểu thêm VC++
Mã:.386 .model flat,stdcall include windows.inc include kernel32.inc include user32.inc includelib kernel32.lib includelib user32.lib .data? Messageboxcaption dd "chao cac ban",0 MessageBoxText dd "Abc",0 .code start: invoke MessageBox,NULL,addr Messageboxcaption,addr MessageBoxText ,MB_OK invoke ExitProcess,NULL end start
C:\Documents and Settings\MR\Desktop\ASM co ban\df.asm(12) : warning A4014: instructions and initialized data not supported in BSS segments
C:\Documents and Settings\MR\Desktop\ASM co ban\df.asm(13) : warning A4014: instructions and initialized data not supported in BSS segments
View more random threads:
- VC++ Lấy Địa chỉ MAC Address trên Máy tính
- convert một mảng sang LPCWSTR trong API
FindNextFile gọi đến hàm nào trong driver??? - Tại sao hook rồi tắt mở lại mới nhận được dữ liệu Postmessage
- chỉ dẫn phương pháp Hook APi bằng inline hook
- Hook sự kiện Edit,Save File thì cần phải làm những gì ?
- SfpVerifyFile Nhiệm vụ
- Hàm CreateFile không thể tạo file là lỗi gì?
- Làm thế nào để liên kết các hàm đã export trong 1 dll. (proxy function )
- Kỹ thuật hook Console Application của madCHook?
-
16-08-2009, 03:40 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Hai dòng Messageboxcaption và MessageBoxText bạn không thể khai báo trong data? được, data? chỉ dành cho dữ liệu chưa khởi tạo
2 dòng này bạn phải khai báo trong data, tức là bỏ dấu ? đi
-
16-08-2009, 03:43 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình nghe nói nếu DATA ? thì sẽ đỡ tốn dung lượng của file exe hơn [IMG]images/smilies/smile.png[/IMG],mình thử làm như thế này
Mã:.386 .model flat,stdcall include windows.inc include kernel32.inc include user32.inc includelib kernel32.lib includelib user32.lib .data? Messageboxcaption dd ? MessageBoxText dd ? .code start: invoke MessageBox,NULL,addr Messageboxcaption,addr MessageBoxText ,MB_OK invoke ExitProcess,NULL end start
Messageboxcaption dd "chao cac ban",0
MessageBoxText dd "Abc",0
-
16-08-2009, 03:54 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Data sections được chia ra làm 3 lọai :
.DATA – chỉ rõ đây là section dành cho dữ liệu và dữ liệu (cụ thể là các biến) được gán giá trị khởi tạo ngay từ đầu chương trình của bạn.
.DATA? – chỉ rõ đây là section chứa dữ liệu không được gán giá trị khởi tạo. Đôi khi bạn muốn chỉ định vài vùng nhớ nhưng không muốn cho nó chứa giá trị nào lúc khởi tạo. Section này dành cho mục đích đó. Lợi thế của chỉ thị này là : không chiếm khoảng trống trong file thực thi (hay nói cách khác kích thước của file trên đĩa không tăng khi sử dụng chỉ thị này để chứa dữ liệu).
Ví dụ : Nếu bạn chỉ định 10.000 Bytes (10 KB) trong khai báo .DATA? section, file exe của bạn sẽ không tăng thêm 10.000 Bytes. Kích thước của nó sẽ không nhiều như vậy. Ở đây bạn chỉ nói cho asm biết khoảng trống bao nhiêu bạn cần khi chương trình được load vào bộ nhớ.
.CONST – chỉ rõ đây là section chứa hằng số được dùng trong chương trình của bạn. Những hằng số trong section này sẽ không thay đổi.
Chú ý : không cần phải sử dụng cả 3 section trên trong chương trình của bạn. Chỉ khai báo những section nào bạn muốn dùng.
Ứng với trường hợp chương trình của bạn, thì bạn khai báo như sau:
Mã:.386 .model flat,stdcall include windows.inc include kernel32.inc include user32.inc includelib kernel32.lib includelib user32.lib .data Messageboxcaption db "chao cac ban",0 MessageBoxText db "Abc",0 .code start: invoke MessageBox,NULL,addr Messageboxcaption,addr MessageBoxText ,MB_OK invoke ExitProcess,NULL end start
-
16-08-2009, 03:55 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn phải có data thì mới hiện được ra chứ, nếu không thì không thể được.
Nếu bạn muốn dùng thế thì có 1 cách khác, nhưng suy cho cùng thì đâu vẫn vào đấy , dung lượng file obj thì giảm sau khi dịch nhưng file exe theo tớ thì vẫn thế sau khi link: cho các xâu của bạn vào stringTable trong resource.
Bạn dùng hàm LoadString để lấy các xâu , hàm này yêu cầu 1 bộ đệm để chứa xâu.
Cón nếu để chương trình tự sinh cả dữ liệu thì tớ chịu
Vừa qua, Chính phủ đã ban hành Quyết định số 2383/QĐ-TTg ngày 09/12/2013 về việc xếp hạng di tích quốc gia đặc biệt. Theo đó, khu di tích Đường Trường Sơn - Đường Hồ Chí Minh là 1 trong 14 kỷ vật...
Các relic, danh thắng được xếp...