Joiner
|
|
xXxSh@dowxXx | Дата: Среда, 25.12.2013, 23:36 | Сообщение # 1 |
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
| Всем как всегда доброго времени суток!
Ребята, прошу вашей помощи, так как у меня уже мозг-off на кануне нового года.
Кстати говоря ВСЕХ ВСЕХ ВСЕХ С НАСТУПАЮЩИМ!
ну так вот, есть у меня исходник одного джойнера, правда если я правильно понял, где то в коде стаба ошибка (хотя может и не в стабе), файлы склеивает, хекс-редактором правда не проверял, но вроде склеивает, а вот при запуске, получается так что результативный файл как бы остается тем же файлом но с полезной нагрузкой в размере того с чем его клеили, целостность исходного файла вроде бы не нарушается, но распаковка почему то не происходит, хотя вроде бы в исходнике стаба все прописано, в общем кто может разобраться, гляньте пожалуйста. Зарание огромное спасибо!
Сообщение отредактировал 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 ( ) Ты щас просишь дать тебе исходник мега крутого джойнера+криптора или что?
Да нет, что ты, да и криптование меня сейчас пока что не интересует, за ненадобностью, вобщем то на основные мои вопросы ты уже ответил, за что большое спасибо, буду собирать
|
|
| |
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-заголовок
Внедрение в хвост секции
Внедрение в регулярную последовательность байт
и все это работает как один процесс, не создавая новых. возможности открываются большие
реализовывается на чистом делфи без asm.
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, Оверлей думаю лучший вариант =)
|
|
| |