|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
В программу на делфи поместить exe
В общем пишется программа, которая чем то напоминает работу "панкбастера". Т.е. пользователь щёлкает по проге, она запускается, далее запускает исполняемый файл игры и каждые 20 минут прога смотрит в диспетчер задач, если игра ещё висит, значит делает принскрин, на фотку помещает ник игрока, помещает все ip адреса системы, далее отправляет эту фотку на сервак по ftp, потом смотрит диспетчер задач, весь список запущенных программ так же отправляет на сервер. Всё работает, всё отлично.
НО! Ведь если пользователь мало майски сообразительный, то он посмотрит, что в клиенте игры появился новый экзешник и попробует его запустить, а убедившись что этот файл это и есть игра, то он не будет запускать тот файл программы, который собственно и делает скрины. Вопрос - как exe файл поместить внутрь программы написанной на delphi? Своего рода сделать контейнер, когда программа запущена, то она сама из себя запускает файл игры? Или это в принципе не получится? |
#2
|
||||
|
||||
Думаю, сейчас появится добрый дяденька админ и напомнит о правилах форума
|
#3
|
||||
|
||||
Цитата:
|
#4
|
|||
|
|||
Я вас умоляю, какие ещё вирусы ... Прога пишется для частного использования. Есть город Хабаровск, там есть провайдер, у провайдера есть 2000 человек, поднят сервак cod mw2 поскольку игра ломанная, никаких античитов разумеется нет, а только открытая консоль. И нервы уже сдают админить сервак этот, вот и пишется античит ... ничего злостного в проге нет.
Последний раз редактировалось _KUL, 12.03.2011 в 18:20. |
#5
|
|||
|
|||
Во первых "панкбастер" реализована в виде службы, которая всегда работает и ставится при установке игры, игра в свою очередь, постоянно проверяет, работает ли служба, и соответственно общается с ней.
ВО не пойму, где связь между отправкой списка всех процессов и отправкой ip адресов и средством античита? Так же, по логике пользования программ, пользователь всегда должен знать, какие процессы протекают на его компьютере, в противном случае это уже опять же относится к нелегальному ПО. |
#6
|
|||
|
|||
Вы мне предлагаете обратится в activision и попросить их, что бы они игрулю cod mw2 подправили и она пыталась связаться с прогой myprogram.exe ??? хм ...
А скрины и список диспетчера задач связан с античитом тем: 1. На скринах сразу видно, прозрачные ли стены у игроков или нет. 2. Есть читы которые работают, когда они запущены, т.е. как отдельная программа которая висит в списке задач. Раз не хотите помочь, хоть скажите, можно ли исполняемый файл внтурь программы на delphi запихнуть или нет? |
#7
|
|||
|
|||
Можно, это называется инъекция кода.
|
#8
|
||||
|
||||
В вашем случае подойдет следующий способ.
Код:
function AttachToFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenWrite or fmShareDenyWrite); MemoryStream.Seek(0, soFromBeginning); aStream.Seek(0, soFromEnd); aStream.CopyFrom(MemoryStream, 0); iSize := MemoryStream.Size + SizeOf(Integer); aStream.Write(iSize, SizeOf(iSize)); finally aStream.Free; end; Result := True; end; function LoadFromFile(const AFileName: string; MemoryStream: TMemoryStream): Boolean; var aStream: TFileStream; iSize: Integer; begin Result := False; if not FileExists(AFileName) then Exit; try aStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite); aStream.Seek(-SizeOf(Integer), soFromEnd); aStream.Read(iSize, SizeOf(iSize)); if iSize > aStream.Size then begin aStream.Free; Exit; end; aStream.Seek(-iSize, soFromEnd); MemoryStream.SetSize(iSize - SizeOf(Integer)); MemoryStream.CopyFrom(aStream, iSize - SizeOf(iSize)); MemoryStream.Seek(0, soFromBeginning); finally aStream.Free; end; Result := True; end; Так же есть 2 способ: вставка (инъекция) своего кода в чужую программу (ЭТО запрещено по всем правилам (как форума, так и РФ )). http://www.google.com.ua/search?hl=r...Delphi&spell=1 Помогаю за Спасибо |
#9
|
|||
|
|||
в общем игра называется COD modern warfare 2, и нужно запрятать файлик iw4mp.exe . Насчёт темповской директории наверно не пойдёт, т.к. файл при запуске проверяет в той же директории кучу dll ini файлов. Даже если сделть по глупому - файл iw4mp.exe переименовать в fail.dat , а при запуске, переименовывать из fail.dat в iw4mp.exe, а при закрытии игры и программа проверяет что игра закрыта, то снова переименовывает в fail.exe. Есть маленькие нюансы, при которых может не получиться. Допустип завис клиент и ему нужно ресет жать, а ведь тогда и файла fail.dat небудет ... Следовательно при запуске программа начнёт переименовывать файл fail.dat, а его уже нет! а то что iw4mp.exe будет в открытую висеть, то это отличный повод читерам задуматься ...
Блин ..... |
#10
|
|||
|
|||
обзови файл svchost.exe (и в процессах не заметен, ибо таких там несколько, и через родной Диспетчер задач - не убьёшь, только через какой нибудь PrcView, кстати который и путь до файла покажет, но я не думаю шо читеры об этом знают)
|
#11
|
|||
|
|||
Есть мысль, а ведь можно exe как ресурс подцепить в программу! вопрос только, а как потом этот ресурс достать и запустить? поделитесь кодом пожалуйста, а то в гугле ничего интересного нет. Буду рад вариантам сохранения ехе на хдд и запуск и вариантам загрузки ресурса в озу и старт от туда. Никто так не делал?
|
#12
|
||||
|
||||
Вот эта статья по ресурсам тебе подойдёт.
А с запуском .* отлично справляется CreateProcess, так что расширение .exe вообще не обязательно. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |