|
OPEN SOURCE PROJECT
Win API
| |
andXrei | Дата: Суббота, 07.03.2009, 21:48 | Сообщение # 1 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| Вот Алгоритм ::::\ format PE GUI 4.0 entry start include 'win32a.inc' section '.data' data readable writable lpPathName db 'C:\21.txt ',0 section '.code' code readable executable start: invoke _lopen,lpPathName,0 invoke ExitProcess,0 section 'idata' import data readable writable library kernel,'KERNEL32.DLL' import kernel,\ _lopen,'_lopen',\ ExitProcess,'ExitProcess' Что здесь не правельно??? При компиляции ошибок не выдавало!!!! Файл 21.txt Существует\\\ Подскажите!!
|
|
| |
fasm | Дата: Суббота, 07.03.2009, 23:15 | Сообщение # 2 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| В принципе все правильно, но не совсем понятно зачем так? Ведь вы просто открываете дискриптор файла, если хотите просмотреть содержимое файла, то вот самый простой пример пример: Code format PE GUI 4.0 entry start include '%fasminc%\win32a.inc'
section '.data' data readable writable
title db 'Информация',0 lpPathName db 'C:\21.txt',0 buffer rb 512h ; buffer 512h byte = 1298 byte hfile dd ? ; Тут будем хранить дескриптор
section '.code' code readable executable
start: ; Открываем файл invoke _lopen,lpPathName,0 ; Сохраняем дескриптор mov [hfile], eax ; Узнаем размер файла invoke GetFileSize, eax, 0 ; Читаем файл и invoke _lread, [hfile], buffer, eax ; Выводим сообщение с содержимым файла invoke MessageBox,0,buffer,title,MB_ICONINFORMATION ; Закрываем открытый дескриптор invoke CloseHandle, [hfile] invoke ExitProcess,0
section 'idata' import data readable writable
library kernel,'KERNEL32.DLL',\ user,'USER32.DLL'
import kernel,\ _lopen,'_lopen',\ _lread,'_lread',\ CloseHandle,'CloseHandle',\ GetFileSize,'GetFileSize',\ E xitProcess,'ExitProcess'
import user,\ MessageBox,'MessageBoxA' Так же оставляю ссылку на мною спроектированный блокнот делал давно, но так и не довел до конца, но для обучения хорош... Скачать блокнот с Яндекса
|
|
| |
andXrei | Дата: Воскресенье, 08.03.2009, 12:11 | Сообщение # 3 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| А если надо запустить файл (.exe) а не просмотреть содержимое Какую функцию использовать>>?
|
|
| |
fasm | Дата: Воскресенье, 08.03.2009, 17:23 | Сообщение # 4 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| Типа вирус пишем? invoke WinExec, lpCmdLine,\ // строка [uCmdShow] // Стиль для нового окна Для uCmdShow используй параметры: SW_SHOWNORMAL - Нормальный вид окна SW_HIDE - скрытое SW_MAXIMIZE - развернутое SW_MINIMIZE - минимизированный и т.д. Еще можно использовать CreateProcess, но если ты начинающий, то можно пока обойтись WinExec
|
|
| |
andXrei | Дата: Воскресенье, 08.03.2009, 21:11 | Сообщение # 5 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| Да не это [пока.....Шучу] не вирус (что за вирус который просто открывает файл??!!!
Сообщение отредактировал andXrei - Воскресенье, 08.03.2009, 21:12 |
|
| |
fasm | Дата: Воскресенье, 08.03.2009, 21:18 | Сообщение # 6 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| Тот который сначала качает его из интернета
|
|
| |
andXrei | Дата: Понедельник, 09.03.2009, 08:02 | Сообщение # 7 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| Как я понял WinExec запускает только exe- файлы?? Тогда функция CreateProcess может любые файлы запускать??? Если да: то напишите этой функции параметры!!
Сообщение отредактировал andXrei - Понедельник, 09.03.2009, 08:10 |
|
| |
fasm | Дата: Понедельник, 09.03.2009, 10:11 | Сообщение # 8 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| На сколько я помню WinExec запускает и com файлы. Алгоритмс запуска bat файлов. lpCmdLine db 'C:\Windows\System32\command.com', 20h db 'C:\autoexec.bat',0 ... invoke WinExec, lpCmdLine, SW_SHOWNORMAL ... 20h - это номер пробела
|
|
| |
andXrei | Дата: Понедельник, 09.03.2009, 11:45 | Сообщение # 9 |
Майор
Группа: Проверенные
Сообщений: 95
Статус: Offline
| WinExec понятна, но меня интерисует функция CreateProcess
Сообщение отредактировал andXrei - Понедельник, 09.03.2009, 11:46 |
|
| |
fasm | Дата: Понедельник, 09.03.2009, 21:39 | Сообщение # 10 |
Admin
Группа: Заблокированные
Сообщений: 122
Статус: Offline
| Code BOOL CreateProcess(
LPCTSTR lpApplicationName, // pointer to name of executable module LPTSTR lpCommandLine, // pointer to command line string LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes BOOL bInheritHandles, // handle inheritance flag DWORD dwCreationFlags, // creation flags LPVOID lpEnvironment, // pointer to new environment block LPCTSTR lpCurrentDirectory, // pointer to current directory name LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION ); Вот пожалуйста....
|
|
| |
|