• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Запуск произвольного файла

  • Автор темы GOSTIK
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

GOSTIK

Подскажите плиз как мне запустить mspaint.exe из тела программы (по указанному пути), или как открыть BMP рисунок для редактирования в этом самомо PAINT'е??? :p

Заранее спасибо!
 
M

morpheus

API функция ShellExecute
HINSTANCE ShellExecute(

HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
 
G

GOSTIK

Спасибо конечно, но разбрать как эта функция работает, я не могу. немоглибы Вы написать пример (ну например изображение C:\1.bmp)
Или может какие документации есть?..
Пожалуйста, очень нужно.!
 
L

LAW

Если ShellExecute для тебя сложноват, обрати внимание на класс TCustomFileRun там всё попроще и хелп есть.

Удачи!
 
T

TWin

Не самый правильный, но самый простой способ:
(пример для Delphi)

WinExec('mspaint.exe',SW_SHOW);

или

WinExec('mspaint.exe C:\1.bmp',SW_SHOW);

Для Builder-а, я так понимаю, нужно апострофы заменить на кавычки и всё
 
G

GOSTIK

<!--QuoteBegin-LAW+26:12:2006, 00:06 -->
<span class="vbquote">(LAW @ 26:12:2006, 00:06 )</span><!--QuoteEBegin-->Если ShellExecute для тебя сложноват, обрати внимание на класс TCustomFileRun там всё попроще и хелп есть.
[snapback]51719" rel="nofollow" target="_blank[/snapback]​
[/quote]

Нашел книгу, там описание этой функции (ShellExecute), но как бы я не пробовал прописать чтобы открылось в паинте, запускается просмотр! В каком именно месте писать:
В параметрах, или еще где? там же всего 4 опции.? :D

А за WinExec спасибо! Получилось!!! :p
 
M

morpheus

<!--QuoteBegin-GOSTIK+26:12:2006, 09:44 -->
<span class="vbquote">(GOSTIK @ 26:12:2006, 09:44 )</span><!--QuoteEBegin-->Нашел книгу, там описание этой функции (ShellExecute), но как бы я не пробовал прописать чтобы открылось в паинте, запускается просмотр!
[snapback]51739" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это потому что в системе по умолчанию ассоциация с фалом bmp видиимо не у mspaint a у просмотрщика

По поводу функции, вот ,правда вижуал, но все же
 
G

GOSTIK

Спасибо, пока не разберусь с ShellExecute, буду юзать WinExec. :D
Кстати а почему он не самый правильный???
 
T

TWin

В хелпе к этой функции (WinExec) написано:

This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

И вот ещё:

Security Remarks

The executable name is treated as the first white space-delimited string in lpCmdLine. If the executable or path name has a space in it, there is a risk that a different executable could be run because of the way the function parses spaces. The following example is dangerous because the function will attempt to run "Program.exe", if it exists, instead of "MyApp.exe".

WinExec("C:\\Program Files\\MyApp", ...)

If a malicious user were to create an application called "Program.exe" on a system, any program that incorrectly calls WinExec using the Program Files directory will run this application instead of the intended application.

To avoid this problem, use CreateProcess rather than WinExec. However, if you must use WinExec for legacy reasons, make sure the application name is enclosed in quotation marks as shown in the example below.

WinExec("\"C:\\Program Files\\MyApp.exe\" -L -S", ...)
 
L

LAW

Класс TCustomFileRun никакого отношения к ShellExecute не имеет.
У него собственный хэлп в билдере. Попробуй вставь строку TCustomFileRun в текст программы и нажми на нём F1.
А текст запуска выглядит примерно так:
TCustomFileRun *tcrun=new TCustomFileRun(this);
tcrun->FileName=cFilePth+cFileNme;
tcrun->Execute();
 
M

malor

Если параметр nShowCmd в функции ShellExecute установлен sw_restore, то что это означает ?
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!