Убрать GUI
Вложение
Приложение из под отладчика не запускается, так что пропатчить showwindow не представляю как.
А поподробнее можно....
А поподробнее можно....
HIEW.
А поподробнее можно....
HIEW.
Полной версии ненашёл, демка не переваривает 5 мб, и вообще не пойму в чём отличие от ollydebug
Но я бы сделал свою программку, которая запускает вашу как дочерний процесс. Так удобней контроль получить
CreateProcess
В него передается структурка STARTUPINFO
dwFlags=STARTF_USESHOWWINDOW
wShowWindow = SW_HIDE
Но я бы сделал свою программку, которая запускает вашу как дочерний процесс. Так удобней контроль получить
Хук хороший вариант, но интересует именно прямой патчинг екзешника.
Но я бы сделал свою программку, которая запускает вашу как дочерний процесс. Так удобней контроль получить
Хук хороший вариант, но интересует именно прямой патчинг екзешника.
Тогда вам нужно через прогу (названия не помню, на ней Гомер Симпсон на икошке) какую-нибудь узнать адрес функции ShowWindowA из либы user32. И хекс едитом каким нибудь найти эти байты. а там вычислить место, где в стек помещается аргумент SW_DEFAULT (скорее всего) и пропатчить на нужное.
ЗЫ удачи :)
UPD
Думаю можно просто скомпилить свою прогу и вывести указатель на функцию :)
UPD2
Когда свою прогу компилишь, адрес может и не совпасть с тем что в экзешнике... Так что нужно сделать dll инъекцию и внутри выполнить код, который и выведет адрес
UPD3
Ты можешь откомпилить код, который делает ShowWindow(SW_DEFAULT); и затем в хексе позырить "сигнатуру" такого кода и искать его.
Но это все безтолку, если прожка упакована. Потому что странно что в оле не открыть.
UPD4
#include <conio.h>
#include <stdio.h>
int main(int argc,char *argv[])
{
printf("%p",ShowWindow);
_getch();
return 0;
}
Но если прога с gui то лучше именно скрыть окно сторонней прогой ( тем же ShowWindow с SW_HIDE параметром ) , иначе всё скорее всего сломается.
Книга Delphi глазами хакера, там все это есть статья "Без окон без дверей", и про хуки там тоже есть...
Книга Delphi глазами хакера, там все это есть статья "Без окон без дверей", и про хуки там тоже есть...
Исходников нет, только реверс.
Нашёл это окошко через редактор ресурсов, можно ли его здесь скрыть, удаление самого ресурса приводит к запуску без окна но с ошибкой.... код окна, есть мысли?
Left = 0
Top = 0
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'Agent'
ClientHeight = 774
ClientWidth = 420
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object pnHeader: TPanel
Left = 0
Top = 0
Width = 420
Height = 100
Align = alTop
BevelEdges = [beBottom]
BevelKind = bkTile
BevelOuter = bvNone
Color = clWhite
ParentBackground = False
ShowCaption = False
TabOrder = 2
DesignSize = (
420
98)
object LogoImage: TImage
Left = 17
Top = 33
Width = 48
Height = 48
end
end
Пробывал, не получается, сообсна теперь вопрос звучит подругому, как отредактировать диалог чтобы скрыть форму?
Или поменять
ClientHeight = 774
ClientWidth = 420
на
ClientHeight = 0
ClientWidth = 0 ?
Или поменять
ClientHeight = 774
ClientWidth = 420
на
ClientHeight = 0
ClientWidth = 0 ?
тоже пробывал, к сожалению нет...
Ну вот, только хотел поделиться с тобой адресом, а ты уже всё сам нашёл. Кстати, retn, если ты поставил его сразу после входа в в функцию, которая создаёт окно - эт очень плохо, а нигде в другом месте, как мне кажется, ты и не мог её поставить. Там же дальше, после создания, если бы ты посмотрел, с хэндлом окна производятся разные манипуляции, например, всякие SetWindowLongW и проч. Нехорошо будет, если какой-нибудь функции передастся невалидный хэндл и она кинет исключение. Ну, не нативная апи, они не кидают эксепшенов, кажется, а что-нибудь другое. Программа упадёт, а ты можешь об этом и не узнать. Всё-таки допили скрывалку, тем более, что ты уже знаешь, где находится создание окна, сделай после CreateWindowExW прыжок на свой код и вызови в нём ShowWindow. И всё будет лучше, чем сейчас, если нигде нет проверки CRC, но её нет, иначе ты не пропатчил бы retn.
Кстати, вот тут нашёл создание окна 00411B43.
Ну вот, только хотел поделиться с тобой адресом, а ты уже всё сам нашёл. Кстати, retn, если ты поставил его сразу после входа в в функцию, которая создаёт окно - эт очень плохо, а нигде в другом месте, как мне кажется, ты и не мог её поставить. Там же дальше, после создания, если бы ты посмотрел, с хэндлом окна производятся разные манипуляции, например, всякие SetWindowLongW и проч. Нехорошо будет, если какой-нибудь функции передастся невалидный хэндл и она кинет исключение. Ну, не нативная апи, они не кидают эксепшенов, кажется, а что-нибудь другое. Программа упадёт, а ты можешь об этом и не узнать. Всё-таки допили скрывалку, тем более, что ты уже знаешь, где находится создание окна, сделай после CreateWindowExW прыжок на свой код и вызови в нём ShowWindow. И всё будет лучше, чем сейчас, если нигде нет проверки CRC, но её нет, иначе ты не пропатчил бы retn.
Кстати, вот тут нашёл создание окна 00411B43.