Сейчас на форуме: Magister Yoda, rtsgreg1989, ==DJ==[ZLO] (+6 невидимых)

 eXeL@B —› Основной форум —› Inliner - генератор инлайн патчей
. 1 . 2 . 3 . >>
Посл.ответ Сообщение


Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 07 марта 2005 16:53 · Поправил: GPcH
· Личное сообщение · #1

Вот наконец-то решил довести до ума свою старую идею.
На данный момент прога является полноценным генератором инлайн патчей для программ, упакованных UPX'ом.
Суть программы такова:
- вы вписываете какие байты и по какому смещению патчить, не забыв указать имя файла, который патчить, а прога генерит патч - EXE файл размером около 30 киллобайт, который способен патчить указанный вами ранее экзешник, причем он патчит не ббайты по смещениям, а меняет переход на OEP UPX'а на свое (генерит новую секцию), где лежит код иинлайна, после выполнения которого происходит переход на OEP.

Теперь не нужно выкладывать cracked.exe с инлайном - достаточно выложить патч в 30 килобайт.

Предложение, пожелания, вдруг прога на каких файлах глючит - пишите здесь.

Для примера в архиве есть папка Test - там крякми, который выводит Wrong Password и проект для инлайнера, который надо скомпилить инлайнером в патч и запустить в папке с крякми, после этого крякми будет писать Pass OK, - EXE крякмиса запакован UPX'ом

URL: http://reversing.dotfix.net/Inliner.rar http://reversing.dotfix.net/Inliner.rar
Size: 50 kb

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 07 марта 2005 17:27
· Личное сообщение · #2

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

P.S. на тестовой 98 винде твой патч вообще не запустился. как выяснилось - из изначального отсутствия вижуал васиковской библиотеки.

-----
EnJoy!





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 07 марта 2005 17:35
· Личное сообщение · #3

Jupiter пишет:
в случае с UPX идея с добавлением секции мне не кажется рациональной.
в файле пакованным UPX'ом обычно достаточно места для того, чтобы сделать inline patch без лишних извратов. нужно просто найти свободное место для вставки.

Патчер планировался как универсальный потому идея общая для всех пакеров - то есть осталось только поддержку других пакеров реализовать в Inliner.dat

Jupiter пишет:
P.S. на тестовой 98 винде твой патч вообще не запустился. как выяснилось - из изначального отсутствия вижуал васиковской библиотеки.

Ориентироваться на 98 винду и выкладывать библиотеку VB (которая в пожатом виде весит 600 килобайт я не стал). Кому она нужна - качаем отсюда:
www.dotfix.net/soft/msvbvm60.rar

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 42.0 (посетитель)
Активность: 0.040
Статус: Участник

Создано: 07 марта 2005 18:01
· Личное сообщение · #4

GPcH пишет:
Теперь не нужно выкладывать cracked.exe с инлайном - достаточно выложить патч в 30 килобайт.

Всегда так и делали, cracked чаще распакованые

GPcH пишет:
вдруг прога на каких файлах глючит

Точно, руками надёжнее и универсальнее



Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 07 марта 2005 18:33
· Личное сообщение · #5

GPcH:
а прога генерит патч - EXE файл размером около 30 киллобайт
-интересная задумка, но руками действительно патч написать лучше. Из-за таких людей хороших прог меньше не станет, и енто радует.

-----
Само плывет в pуки только то, что не тонет.




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 07 марта 2005 20:09 · Поправил: Bitfry
· Личное сообщение · #6

GPcH
Если ASpack подкрутить - будит классный инструмент.

-----
Всем привет, я вернулся





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 07 марта 2005 21:06 · Поправил: Jupiter
· Личное сообщение · #7

GPcH пишет:
Ориентироваться на 98 винду и выкладывать библиотеку VB ...


GPcH, я не имею ничего против того, что Inliner (patch creator) написан на Васике, но вот то, что генерируемый им патч на VB меня не радует.
К тому же есть dUP (diablo2oo2's Universal Patcher), который прекрасно поддерживает пакованые файлы (UPX,FSG,ASPack, также добавляя секцию), Search and Replace, возможность задать собственный дизайн (редактированием ресурсов).
и это при том, что patcher dUP написан на асме и в упакованом виде весит меньше пяти килобайт.

а чем примечателен твой патчер?
пакованый весит под тридцать кило, ресурсы ему не поменять (кроме иконки разве что)
обязательно требует VB runtime (патч то ведь должен запускаться на любой платформе, а VB runtime и не на каждой Win2k есть)
search'n'replace не поддерживает, следовательно для хоть сколь нибудь грамотного хакера inline patch проще сделать руками

глюки:
имя автора не запоминается и в патчере не отображается

короче, в случае с inline patch для UPX лучше иметь вспомогательную тулзу для:
1. нахождения прыжка на OEP (сразу после popad)
2. отыскания свободного места для вставки своего патчера (это если патчить надо много байт)
3. вбивания прыжка на патчер/из патчера на OEP

В данном случае, для твоего Test.exe нужно пропатчить всего 11 байт

вместо
00405557 > \61 popad
00405558 - E9 EFBBFFFF jmp Test_upx.0040114C


должно быть
00405557 > \61 popad
00405558 C605 AF164000 EB mov byte ptr ds:[4016AF], 0EB
0040555F - E9 E8BBFFFF jmp Test_upx.0040114C

найти UPX loader никогда труда не составляло ;)

в общем, для облегчения этой процедуры, твоя прога могла найти прыжок на OEP (00405558: E9 EFBBFFFF jmp 0040114C),
создать строку для патча (mov byte ptr ds:[4016AF], 0EB), вбахать прыжок на OEP
если составляет трудность ассемблирования 'mov byte ptr ds:[4016AF], 0EB' в байт-код, то можно отдать эту работу OllyDbg:
пропатчить exe после UPX loader'a (вбить опкод СС), грузануть файлик в olly, и уже в нём ассемблировать 'mov byte ptr ds:[4016AF], 0EB', 'jmp 0040114C'

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

dUP:
diablo2oo2.di.funpic.de/dup.htm

1ec7_GPcH_Test_Inliner.rar

-----
EnJoy!





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 07 марта 2005 21:46
· Личное сообщение · #8

Bitfry пишет:
Если ASpack подкрутить - будит классный инструмент.

Ты мне скажи способ поиска ret'а на OEP - прикручу, только чтобы поиск можно было осуществить со 100% точностью для всех версий ASPack'а. Писать эмулятор кода ASPack'а у меня нет желания, а как найти переход на OEP программно (чтобы на всех версиях ASPack'а верно определялось) - я не знаю. Буду рад , если кто подскажет, кстати и на счет других пакеров не против буду услышать методику статического поиска (без дизассемблирования команд, а чистым str_pos'ом) перехода на OEP. Почему без дизассемблирования - нету дизассемблерных движков на VB (только 16 битный).

Jupiter пишет:
К тому же есть dUP (diablo2oo2's Universal Patcher), который прекрасно поддерживает пакованые файлы (UPX,FSG,ASPack, также добавляя секцию)

Знаю. Давно юзаю, классная вещьб но для генерации инлайнов имхо он не особо удобен, потому и хочу свой написать.

Jupiter пишет:
обязательно требует VB runtime

Финальную версию думаю перепишу на Power Basic - скомпиленные на нем exe файлы имеют небольшой размер и не требуют никаких библиотек

Все же хотелось бы услышать о работоспособности проги, а не о том, нужно ее писать или нет

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 08 марта 2005 00:06
· Личное сообщение · #9

GPcH пишет:
Все же хотелось бы услышать о работоспособности проги, а не о том, нужно ее писать или нет


по поводу работоспособности я уже написал в т.ч. и то, что
имя автора не запоминается и в патчере не отображается


GPcH пишет:
чтобы на всех версиях ASPack'а верно определялось

в разных версиях ASPack'a по-разному происходит переход на OEP. отличаются 2.11 и 2.12. в первом случае переход по ret, во втором - по jnz (поиск [61 75] popad, jnz ...), в некотрых просто call и т.д.
это я к тому, что в любом случае поиск перехода на oep будет разным для разных версий

-----
EnJoy!




Ранг: 389.6 (мудрец)
Активность: 0.150
Статус: Участник

Создано: 08 марта 2005 01:48
· Личное сообщение · #10

А я DZA юзаю, если ручками лень. И пакер он сам определяет. Может и патчик смастерить и лоадер. А может и прогу сам пропатчить. Патчики выходят 5 - 10 Кб. И под 98 прекрасно работает, что лично меня не может не радовать.

-----
TBR





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 08 марта 2005 06:39
· Личное сообщение · #11

GPcH
Идея-то хорошая, но реализована криво ;)
Вот мне например не по приколу юзать чужой патч.ехе
Лучше бы твоя прога генерила заинлайненый cracked.exe
Я уж потом на основе оригинального и крякнутого ехе можно было бы патч сделать.
P.S. Сорри, если повторился =)



Ранг: 53.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 08 марта 2005 07:54
· Личное сообщение · #12

WELL
Я щас как раз такую тулзень пишу Пока тоже поддерживается только UPX.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 марта 2005 10:22
· Личное сообщение · #13

WELL пишет:
Я уж потом на основе оригинального и крякнутого ехе можно было бы патч сделать

Угу, посему реальное предложение - генерить не сам патч, а байты для патча в виде текстового файла:
PatchByte db 011h,0AAh,.....
PatchOffset dd 07001h, 07002h,....
Kolichestvo db 20

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




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 08 марта 2005 17:55
· Личное сообщение · #14

Ara пишет:
PatchByte db 011h,0AAh,.....
PatchOffset dd 07001h, 07002h,....
Kolichestvo db 20

Такую тулзу я тоже сделал для себя.


bkslash
Ждём релиз ;)




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 08 марта 2005 21:10
· Личное сообщение · #15

WELL пишет:
Идея-то хорошая, но реализована криво ;)

Да ладно вам придираться, это ж релиз 1.0, гпч скоро всё круто допишет, наверное.Ara пишет:
посему реальное предложение - генерить не сам патч, а байты для патча в виде текстового файла

Да, это было бы хорошо, а то вот мне не нравится что DZA создаёт "noname" patch.exe - некрасиво.GPcH пишет:
только чтобы поиск можно было осуществить со 100% точностью для всех версий ASPack'а.

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

-----
Всем не угодишь





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 08 марта 2005 22:33
· Личное сообщение · #16

WELL пишет:
Идея-то хорошая, но реализована криво ;)
Вот мне например не по приколу юзать чужой патч.ехе
Лучше бы твоя прога генерила заинлайненый cracked.exe

А что мешает сгенерить моей прогой патч, им проинлайнить прогу - получишь проинлайненный EXE (правда на два щелчка мышью больше придется сделать )))
Кстати проверял прогу на том Cutting3.exe что ты мне присылал когда я только начинал Inliner писать - новый ее на ура инллайнит - сегодня проверял

Ara
Я так понял, чтобы прога генерила асмовый код инлайна? Если да, то к сожалению я не настолько знаю асм, чтобы инлайн патч на нем написать. А просто crk файл не сдалаешь - размер файла же меняется когда в нем новую секцию создаешь

Jupiter пишет:
по поводу работоспособности я уже написал в т.ч. и то, что

Я не про косметические глююки - до них мне пока пофигу, так как это еще не релиз проги (еще никуда ее не выкладывал, кроме этого форума). Мне важна работоспособность генеримых патчей. Если на какой проге вручную работает, а с инлайнером - нет - просьба прислать мне на мыло экзешник инлайненной проги и проектный файл инлайнера - буду ббаги фиксить (хотя у меня вродде работает - тестил на 2 файлах, так как больше нету заUPXенных шаровар у меня на винте).

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 08 марта 2005 22:49 · Поправил: Ara
· Личное сообщение · #17

GPcH
Нет, не асмовый код... Просто нужный кусочек в секцию .data
У меня генерит так:
=============================
kol db 1
fName db 'Artefact.exe',0
PatchOffset dd 002C320h
PatchByte db 090h
OldByte db 030h
fSize dd 181248
=============================
Потом вставляешь это дело в свой патч и компилишь...




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 08 марта 2005 23:35
· Личное сообщение · #18

А как знать, какой код вставлять? Ведь патч в зависимости от версии пакера по разному инлайнит, да и к тому же патч можно сгенерить не имея того EXE файла, который патчим, а зная только байты которые нужно пропатчить после распаковки файла в памяти, а для того что ты предлагаешь понадобится файл, который патчим. У меня например очень часто ббывает такое - записал, где нужно пропатчить прогу чтобы не требовала регистрации, при этом зная что там UPX, а прогу cfvq удалилб при этом друг патчик просит - тут моя прога сработает на ура, так как оригинальный ломаемый EXE ей нафиг не нужен

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 09 марта 2005 05:42
· Личное сообщение · #19

GPcH пишет:
А что мешает сгенерить моей прогой патч, им проинлайнить прогу - получишь проинлайненный EXE (правда на два щелчка мышью больше придется сделать )))

А потом сравнивать оригинальный ЕХЕ с проинлайненным EXE с прикрученной секцией??? У него же размер будет больше.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 09 марта 2005 13:32
· Личное сообщение · #20

GPcH пишет:
У меня например очень часто бывает такое - записал, где нужно пропатчить прогу, чтобы не требовала регистрации, при этом зная, что там UPX, а прогу сам удалил, при этом друг патчик просит


1. Вариант с отсутствием файла, который надо патчить... хм... бывает, конечно, но редко

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

3. Ну а если уж такой вариант, что и файла самого нет, и размер имеет значение ;) то я всё равно воспользовался бы dUP'ом, ибо он удобнее и компактнее.

-----
EnJoy!




Ранг: 31.0 (посетитель), 1thx
Активность: 0.040
Статус: Участник

Создано: 09 марта 2005 15:21
· Личное сообщение · #21

Кста, Hex когда-то писал:
"Inline patch подразумевает неизменность размера файла, а не вот такое наращивание. Inline - это типа между строк, т.е. как обычный патч, тока в условиях запакованости, а это уже outline patch."
Просто к сведению...




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 09 марта 2005 15:30
· Личное сообщение · #22

sanniassin пишет:
outline patch

круто, новый термин.

-----
Всем не угодишь




Ранг: 31.0 (посетитель), 1thx
Активность: 0.040
Статус: Участник

Создано: 09 марта 2005 15:41 · Поправил: sanniassin
· Личное сообщение · #23

sanniassin пишет
лучше так: Hex пишет ;)




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 09 марта 2005 15:47
· Личное сообщение · #24

гы, в терминологию ушли =) делать нефиг ;) тем более что "словаря кракера" нету, поэтому спорить о терминах бесполезно.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 09 марта 2005 15:55
· Личное сообщение · #25

Mario555 пишет:
гы, в терминологию ушли


;)

outline не совсем подходит
outline - это очертание, контур, набросок

это скорее overlay patch

-----
EnJoy!




Ранг: 31.0 (посетитель), 1thx
Активность: 0.040
Статус: Участник

Создано: 09 марта 2005 16:06
· Личное сообщение · #26

гы, пошел оффтоп




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 09 марта 2005 17:59 · Поправил: GPcH
· Личное сообщение · #27

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

Кому что нравится Мне проще не париться и за 1 минуту сгенерить патчик моей прогой и послать по мылу или просто положить в коллекцию, чем париться.

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 09 марта 2005 18:04
· Личное сообщение · #28

GPcH пишет:
Короче я так понял, что прога никому нах не нужна, что всем проще руками инлайны генерить, мучаясь по часу в поисках свободного места и с проверкими работоспособности EXE.


я ж писал, что нужно:

Jupiter пишет:

короче, в случае с inline patch для UPX лучше иметь вспомогательную тулзу для:
1. нахождения прыжка на OEP (сразу после popad)
2. отыскания свободного места для вставки своего патчера (это если патчить надо много байт)
3. вбивания прыжка на патчер/из патчера на OEP


или лень читать большие посты?

-----
EnJoy!





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 09 марта 2005 18:12
· Личное сообщение · #29

Jupiter пишет:
или лень читать большие посты?

Не лень, просто я сразу сказал, что это я делать не буду, потому что алгоритм дла каждого пакера будет разный и будет зашит в Inliner.dat, а дублировать данные из Inliner.dat в Inliner.exe - не только неэффективно, но и может привести к глюкам. В общем прога задумывалась как полностью автоматическая. Проще сделать поддержку внешних Inliner.dat'ов, которые можно ббудет писать на любом языке программирования, но желающих писать Inliner.dat на асме я не нашел, а самого не тянет писать генератор инлайнов на асме.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 31.0 (посетитель), 1thx
Активность: 0.040
Статус: Участник

Создано: 09 марта 2005 18:14
· Личное сообщение · #30

GPcH пишет:
мучаясь по часу в поисках свободного места и с проверкими работоспособности EXE

это всё вообще не проблема. Без проблем можно писать патч в header или конец последней секции. К тому же секции обычно выравниваются, в нули для выравнивания тоже мона писать


. 1 . 2 . 3 . >>
 eXeL@B —› Основной форум —› Inliner - генератор инлайн патчей
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати