![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Ребят, вот вспомнил, что лет 5 назад так делал программку - телефонный справочник, состоящий из одного exe-файла... Только уже исходников не сохранилось...
В общем, я каким-то образом записывал в конец этого exe файла из самого себя же... А также было обновление самого себя же - копировал поверх, закрывал и открывал снова... Пожалуйста, кто-нибудь напомните как это сделать! Знаю, многие будут говорить, что это в принципе невозможно! Но ведь я -то делал!!! Реально программа работала! |
#2
|
||||
|
||||
![]() Возможно, вирус называется. Все антивирусники такую программу с г... съедят.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Тут вопрос в том, как это всё-таки делается!??? И добавить свою же программу в список исключений не составит труда!
|
#4
|
||||
|
||||
![]() Темы такого плана на форуме не обсуждаются. Хочешь хранить в файле смотри в сторону ресурсов.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
||||
|
||||
![]() Боюсь схлопотать банку, но на 100% уверен что ТС`у это всё нужно исключительно в мирных, не хакерских целях, чисто для расширения кругозора (вона какой он хороший - телефонный справочник пишет О), а посему пжлст, сильно не бейте :+)
Цитата:
Цитата:
Цитата:
Код:
... var BatchFile: TextFile; BatchFileName : string; TempMem : PChar; begin BatchFileName := changefileext(paramstr(0), '.bat'); AssignFile(BatchFile, BatchFileName); Rewrite(BatchFile); Writeln(BatchFile,':try'); Writeln(BatchFile,'del "' + ParamStr(0) + '"'); Writeln(BatchFile,'if exist "' + ParamStr(0) + '" goto try'); Writeln(BatchFile,'del "' + BatchFileName + '"'); CloseFile(BatchFile); GetMem (TempMem,70); GetShortPathName (pchar(BatchFileName), TempMem, 70); BatchFileName:=TempMem; FreeMem(TempMem); winexec(Pchar(BatchFileName),sw_hide); // http://forum.sources.ru Цитата:
![]() Код:
... var txt: string; b: byte; i: integer; begin ... txt:= 'проверка'; with TFileStream.create('Моя софтина', fmOpenWrite or fmShareDenyWrite) do try Seek(0, soFromEnd); for i:=1 to length(txt) do begin b:= Byte(txt[i]);Write(b,1);end; b:=length(txt); Write(b, 1); finally Free; end; end; Код:
... var bn: byte; txt: string; text: pchar; begin ... with TFileStream.create(Application.ExeName, fmOpenRead or fmShareDenyWrite) do try Seek(-1, soFromEnd); Read(bn,1); Seek(-byte(bn)-1, soFromEnd); GetMem(text, byte(bn)); Read(text^, byte(bn)); txt:= string(text); SetLength(txt, byte(bn)); FreeMem(text); finally Free; end; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 22.02.2013 в 07:30. Причина: Хорошая мысля приходит опосля:) |
#6
|
||||
|
||||
![]() Ё мое, что так все сложно? Можно просто скопировать запускаемый екзешник в папку "темп", запустить его с параметрами и закрыть первую запущенную программу, запущенный с параметрами из "темпа" екзешник допишет что нужно в оригинальный файл, запустит его с параметрами - "типа все ок" и сам закроется. Все, оригинальный файл изменен и работает.
P.S. все современные файрволы не дадут запуститься измененному файлу без разрешения пользователя. Так что не майся фигней и сделай сохранение данных в документах и реестре, как это делают все нормальные программы. 00110001 00101100 00110110 00110001 00111000 00110000 00110011 00110011 00111001 00111000 00111000 00110111 00110100 00111001 00111000 00111001 00110100 00111000 00110100 00111000 00110010 00110000 00110100 00110101 00111000 00110110 00111000 00110011 00110100 00110011 00110110 00110101 00110110 Последний раз редактировалось ~TB~, 22.02.2013 в 10:51. |
#7
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
![]() Блин, что же все такие недоверчивые... Если говорю, что делал как-то - значит так оно и было! Ещё знакомый программер очень сильно удивился этому, даже ему код скидывал. Если найду его, спрошу. ДАвно уже не общаемся с ним...
|
#9
|
||||
|
||||
![]() Не верю! Объяска выше. С ДЗО тебя!
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |