Пятница, 29.03.2024, 04:38 Приветствую вас Гость | Группа "Гости" 
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Anton93, Волк-1024, xXxSh@dowxXx  
delphicode » Delphi » Программы на Delphi » Joiner (Error_Stub)
Joiner
xXxSh@dowxXxДата: Среда, 25.12.2013, 23:36 | Сообщение # 1
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Всем как всегда доброго времени суток!

Ребята, прошу вашей помощи, так как у меня уже мозг-off на кануне нового года.

Кстати говоря ВСЕХ ВСЕХ ВСЕХ С НАСТУПАЮЩИМ! smile

ну так вот, есть у меня исходник одного джойнера, правда если я правильно понял, где то в коде стаба ошибка (хотя может и не в стабе), файлы склеивает, хекс-редактором правда не проверял, но вроде склеивает, а вот при запуске, получается так что результативный файл как бы остается тем же файлом но с полезной нагрузкой в размере того с чем его клеили, целостность исходного файла вроде бы не нарушается, но распаковка почему то не происходит, хотя вроде бы в исходнике стаба все прописано, в общем кто может разобраться, гляньте пожалуйста.
Зарание огромное спасибо!
Прикрепления: joiner_error.rar (10.7 Kb)


Сообщение отредактировал xXxSh@dowxXx - Среда, 25.12.2013, 23:38
 
d4rkzyДата: Пятница, 27.12.2013, 18:29 | Сообщение # 2
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
В стабе ошибку и ищи, яб посмотрел что там не так - ну в чужой код разобрать мне трудно =) По этому проще с нуля написать. (10 минут делов то)
 
xXxSh@dowxXxДата: Пятница, 27.12.2013, 19:45 | Сообщение # 3
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата d4rkzy ()
(10 минут делов то)

ну для меня это явно не 10 минут, да и джойнеры я раньше не писал.
 
d4rkzyДата: Пятница, 27.12.2013, 22:09 | Сообщение # 4
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
xXxSh@dowxXx, завтра тогда намучу простенький джойнер на дельфах - сюда выложу)
 
xXxSh@dowxXxДата: Пятница, 27.12.2013, 22:37 | Сообщение # 5
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата d4rkzy ()
завтра тогда намучу простенький джойнер на дельфах - сюда выложу)

ну в принципе с простыми функциями джойнера все понятно, в нете вон простых джойнеров пруд пруди, меня конкретно интересует склеивание различных файлов любых форматов без нарушения целостности файлов, так же интересует функция выдергивания иконок прямо из файлов, хотя вроде у меня где то был код такой, ну и конечно же склеивание любого количества файлов, а так же распаковка файлов прямо в памяти без лишнего копирования во всякие темп и тп.

что касается распаковки в мемори, то мне Волк-1024 скинул кое какие функции, пока сижу разбираюсь.
 
d4rkzyДата: Пятница, 27.12.2013, 22:49 | Сообщение # 6
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
Цитата xXxSh@dowxXx ()
меня конкретно интересует склеивание различных файлов любых форматов без нарушения целостности файлов

Ты только что сказал что простыми функциями джойнера все понятно, значит тебе не понятно стало вдруг.
Пишешь стаб - в который билдер будет добавлять ресурсы (.RES) или писать файлы в конец твоего стаба.
(можно обойтись обычным writeln - правда скорость медляк)
Можно stream юзать - скорость быстрая - для джойнера самое то

Цитата xXxSh@dowxXx ()
ыдергивания иконок прямо из файлов

Ресурсы опять. Выдераешь ресурс Icon из файла и сейвишь как .ico

Цитата xXxSh@dowxXx ()
склеивание любого количества файлов, а так же распаковка файлов прямо в памяти без лишнего копирования во всякие темп и тп.

В другую твою тему кинул исходник запуск ехе из памяти.

А вообще - не понимаешь как сделать тупое склеивание файлов, читай ГУГЛ.
Ты щас просишь дать тебе исходник мега крутого джойнера+криптора или что?
Если хочешь узнать как написать - я все расписал.
Если сорец - гугл.
 
xXxSh@dowxXxДата: Пятница, 27.12.2013, 22:59 | Сообщение # 7
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Цитата d4rkzy ()
Ты щас просишь дать тебе исходник мега крутого джойнера+криптора или что?


Да нет, что ты, да и криптование меня сейчас пока что не интересует, за ненадобностью, вобщем то на основные мои вопросы ты уже ответил, за что большое спасибо, буду собирать smile
 
Anton93Дата: Суббота, 28.12.2013, 17:15 | Сообщение # 8
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
xXxSh@dowxXx, он у меня вообще не работает, не пойму пока почему. выбираю файлы для склейки - выбивает ошибку. до стаба дело не доходит. он даже файл не собирает...
Проанализировал код стаба, заметил следующее.

Код
CopyFile(PChar(paramstr(0)),             
          PChar(TempFile), false);
//ну тут все поняно, тупо себя скопировали

.....

Pos := FileSize(F);
//а потом получили размер всего файла, что является стратовой позицией ниже
.....
LoadFromFile(TempFile, Temp +        
             IntToStr(l) + '.exe', Pos, Pos);
//и тут мы передаем как раз тот самый байт для оклейки. но был передан размер всего файла... в итоге он его не распакует
.....


это на глаз. в иделае конечно бы откомпилировать, но у меня даже сборшик не работает. системную ошибку выдает.

Цитата
меня конкретно интересует склеивание различных файлов любых форматов без нарушения целостности файлов


тут все очень просто. работай с файлами как НЕ с типизированными и все. а чтобы разделять надо какой-нить уникальный разделитель придумать (последовательность байт), или жестко прописывать размеры блоков. по которым он будет их отделять

d4rkzy,

Цитата
(можно обойтись обычным writeln - правда скорость медляк)
Можно stream юзать - скорость быстрая - для джойнера самое то


writeln крайне не рекомендую для таких вещей. в большинстве случаев файлы неработоспособны после такой записи. так как она типизированные данные пишет. в этом случае бинарник надо жестко обработать во время чтения, чтобы сделать понятной для этой процедуры и чтобы данные не потерялись/повредились.

что касается скорости, - blockread и blockwrite в помощь. задаем буфер и получаем быстрое копирование. последний раз тетстил на черве поражающем exe'шки - скорость записи была примерно 20mb в секунду. мало? думаю нет


ICQ: 41896

Сообщение отредактировал Anton93 - Суббота, 28.12.2013, 17:28
 
xXxSh@dowxXxДата: Суббота, 28.12.2013, 18:10 | Сообщение # 9
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
Anton93, очень познавательно, спасибо большое)

а не подскажите, возможно ли запустить файл из мемори, или из массива не создавая новых процессов, как бы программа работающия в адресном пространстве другой программы что ли, и реально ли это вобще?
 
Anton93Дата: Суббота, 28.12.2013, 18:32 | Сообщение # 10
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
xXxSh@dowxXx,

Цитата
а не подскажите, возможно ли запустить файл из мемори, или из массива не создавая новых процессов, как бы программа работающия в адресном пространстве другой программы что ли, и реально ли это вобще?


безусловно!

есть несколько методов



Внедрение в PE-заголовок



Внедрение в хвост секции



Внедрение в регулярную последовательность байт



и все это работает как один процесс, не создавая новых. возможности открываются большие wink

реализовывается на чистом делфи без asm.
Прикрепления: 4607988.gif (8.0 Kb) · 2589142.gif (21.1 Kb) · 4527978.gif (22.0 Kb) · 9769317.gif (18.5 Kb) · 3764297.gif (18.5 Kb)


ICQ: 41896
 
d4rkzyДата: Суббота, 28.12.2013, 19:40 | Сообщение # 11
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
Цитата
writeln крайне не рекомендую для таких вещей. в большинстве случаев файлы неработоспособны после такой записи.

Ну это конечно, я имел виду blockwrite =)
Stream можно вполне использовать для таких целей - на каком то сайте видел функцию attach any code to any exe - из этой просто функции можно джойнер за 5 минут слепить (С шифрованием и тк)

Цитата xXxSh@dowxXx ()
а не подскажите, возможно ли запустить файл из мемори

я вроде уже дал тебе исходник, который делает инжект ехе в память любого процесса, причем который работате на всех версиях винды

Anton93, Оверлей думаю лучший вариант =)
 
delphicode » Delphi » Программы на Delphi » Joiner (Error_Stub)
  • Страница 1 из 1
  • 1
Поиск:

delphicode.ru © 2008 - 2024 Хостинг от uCoz