Как да свалите файла ЕХЕ в паметта е

Как да свалите файла ЕХЕ в паметта напълно?

Кой знае, да ми кажете как да се направи Търсейки напълно заредени в паметта и качването не е необходимо? Може би има и други решения на проблема. Тя се състои в следното: продуктът трябва да бъде поставен върху CD, в количество, което не е ограничено (мисля парчета ще бъдат 10), както и DVD е неприемливо и инсталиране на софтуер на твърдия диск също. Аз предполагам, че Търсейки някакъв начин може да бъде изтеглен напълно от първия компакт диск. Ако е така, кажете ми как да го направя. Благодаря.







Искаш ли тази програма да се направи това тичам Търсейки файл на някого. Или за вашия Търсейки-Schnick каже.

Подобни програми (например, инсталаторът) копия за зареждане на ОС (абсорбатор) в временна папка, и след това да поискат данни от дискове.
Аз разбирам, че проблемът с невъзможността да поставите компактдиск всички наведнъж. )


> Искате ли тази програма да се направи, т.е. тичам някой
> .exe файл. Или за вашия Търсейки-Schnick каже.

Вашият. Той е, според моя идея (все пак аз мисля така), трябва да бъде поставен в първия компакт диск, но се показват данните от различни CD и търсенето и поставете, както е необходимо.

След това го копирайте на тока, както е описано по-горе, във временна папка,
например Windows, и започва да тече от там


> Подобни програми (например, инсталаторът) копия за зареждане на ОС
> (Extractor) в временна папка, и след това да поиска
> Данни от дискове.

Ако рестартира, той ще остане там и няма да бъдат премахнати, но това противоречи на изискванията на техническото задание. Клиентът иска всички файлове на компютъра не остават изрично. Дори и да изключите електричеството.

> Аз разбирам, че проблемът с невъзможността да поставите всички CD
> Едновременно. )

Приблизително толкова. За да бъдем точни, проблемът с невъзможността да се едновременно поставете компактдиска със софтуера и CD с данни да бъдат показани. търсене TK трябва да работи на компютри с CD диск.

..Ако рестартира, той ще остане там и няма да бъдат премахнати, но това противоречи на изискванията на техническото задание

Така че, TK е направено неправилно или имате ли да напишете своя OS.
Като опция оферта след започване декомпресор (наречена така) от временната директория веднага тичам функция с пътя MoveFileEx unpacker и MOVEFILE_DELAY_UNTIL_REBOOT флаг - в този случай отстраняването отложено за програмата се рестартира.


> Така че, TK е направено неправилно или имате ли да пиша
> Вашият OS.

Аз не измислям. TK пише за клиента, а не мен. Ако всичко зависеше от мен, аз имам този, според мен, не излезе.

> Като опция, аз предлагам след започване декомпресор (наречени
> Тя така) от временната директория незабавно да започне функция
> MoveFileEx с unpacker пътя и MOVEFILE_DELAY_UNTIL_REBOOT знаме
> - в този случай отстраняването на програмата ще бъде отложена, докато не се рестартира.

Благодаря за съвета. За съжаление, ако EXE изсече от диспечера на задачите, файловете ще останат, докато не се рестартира. Това не трябва да бъде.







Аз не знам как там за мениджъри задачата по проекта, но това може да се извърви извратен начин:
да се регистрират в регистър RunOnce клон пътя към файла партида във временната папка на Windows на. Тази партида файл на следващото рестартиране ще изтрие всички файлове и себе си заедно с тях.


> Аз не знам как там за мениджъри задачата по проекта, но е възможно да се погрешни
> От:
> За да се регистрирате в регистър RunOnce клон пътя до файла партида във временната
> Windows папка. Този файл партида при следващото рестартиране изтрива
> Всички файлове и себе си заедно с тях.

Това е просто извращение.
Можете да изтриете файлове, без командния файл, а само един отбор. Пример за това е в Често задавани въпроси. Commando изглежда като: "command.com / C дел FILENAME.EXT". Очевидно под EXT означаваше EXE. Това е малко по-малко от един извратен начин. И, като цяло, за това е MoveFileEx функция. Една от неговите функции - да изтриете файлове на рестартиране (за съжаление, само в операционната система на NT-ядро).
Но преди рестарта вече беше обсъден. Това не е проблем. Проблемът - нарязани EXE без рестартиране.
След като устройството е отстранен - ​​нищо не трябва да остане.

След това просто хакерски техники като тягата на кората им в Explorer, с помощта на CreateRemoteThread. И внимавайте за отстраняване на необходимите файлове. Или още по-екстремни методи като в пръстен 0 Вземете водачът да работи с faylovay система за проследяване на завършване на процеса или за извършване на почистване. Друг начин: това е възможно да се отговори на първия форум WM_CLOSE и т.н., и произвеждат продукция с разстояние .. Този код е, мога да споделя, edes онлайн сега се предават.

След това просто хакерски техники като тягата на кората им в Explorer, с помощта на CreateRemoteThread. И внимавайте за отстраняване на необходимите файлове. Или още по-екстремни методи като в пръстен 0 Вземете водачът да работи с faylovay система за проследяване на завършване на процеса или за извършване на почистване. Друг начин: това е възможно да се отговори на първия форум WM_CLOSE и т.н., и произвеждат продукция с разстояние .. Този код е, мога да споделя, edes онлайн сега се предават.

Като спекулация: а IMAGE_NT_HEADERS - IMAGE_FILE_HEADER - Характеристики тече от суап (Неподвижно нето) няма да ви помогне?


> Как предположението: а IMAGE_NT_HEADERS - IMAGE_FILE_HEADER
> - Характеристики Бягай от суап (ПАДАЩ нето) случай
> Не работи?

Благодаря ви много! svehtsennaya идеята. В крайна сметка, в Windows наистина е предвидено моя случай! Нямах представа, че има такъв флаг като IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP! Друг въпрос. Защото Delphi не си позволи да промените флаговете в IMAGE_FILE_HEADER. Има ли начин да добавите този флаг, когато пишете програма за Delphi? Може би след компилация? И все пак, ако системата получава CD като сменяем когато изтегляте изпълним файл?


> Има ли някакъв начин да добавите този флаг, когато пишете програма за Delphi?

Едва ли.


> Има система CD възприема със сменяем обувка
> Изпълним файл?

Този отговор не е нищо. Знанието не е достатъчно. Магьосниците могат да обяснят?

Дори и като опция - разклаща ekzeshnik опаковчик. Казват, че тогава той всички заредени в паметта;)

Ако не използвате DLL "ки с togozhe диск като програма, тя работи. Тестван на дискета. С DLL" Ками просто не са опитвали.
Но най-вероятно, ако ги инсталирате на посочените по-горе знамената, че ще работи.

FS: TFileStream;
INH: TImageNtHeaders;

ZeroMemory (@ INH, SizeOf (INH));
ако OpenExeDialog.Execute след това
# XA0; започне
# XA0; FS: = TFileStream.Create
# XA0; (OpenExeDialog.FileName, fmOpenReadWrite);
# XA0; FS.Read (INH.Signature, SizeOf (INH.Signature));
# XA0; FS.Read (INH.FileHeader, SizeOf (INH.FileHeader));
# XA0; FS.Free;
# XA0; край;

Дебъгера тогава Характеристики = 0. Само аз събрани EXE файл в VS и опции свързващи ясно изложени Разменени стартирате от CD вариант, който е отговорен за поставянето melkomyagkih този флаг. Какво съм аз греша? EXE не може да започне, както предполагам?

Той осъзна грешката си. Vindovyh EXE файл започва след DOS. Но как да се намери началото на прозорци EXE? Може да отговаря, преди да започне "PE" # 0 # 0?

Може да отговаря нищо.
За да намерите PE-заглавна необходимостта за да отидете на компенсиране стойността, посочена в e_lfanew.

PS И като цяло ще е добре да се чете на структурата на PE файл.