перебирая куча исходников крипторов... (90% не компилятся даже, компилятор masm) с трудом представил себе самый простой алгоритм защиты. в тупик меня завела другая проблема, когда я добавляю новую секцию, туда нужно что то впихнуть (код распаковщика), как его сгенерировать ? естественно с ОЕР, для начала хотя б сам код возврата на ОЕР
> естественно с ОЕР, для начала хотя б сам код возврата на ОЕР Эмм, jmp <OEP> ? > дай ссылку на правельную ветку, думаю, на васме нет веток про крипторы =\
Элементрно Ватсон. Вы путаете/не знаете, что есть криптор "сидящий" в теле защищенной программы и программа-криптор, которая его туда "сажает". Собственно прога и не обязательна : вы может в любом хекс-редакторе с дизассемблером ручками его добавить. Тоже самое можно сделать программно. Для этого нужно хорошо понимать структуру PE-EXE. Ну а чтоб чужое компилировать, надо самому изучить ассемблер, т.к. обычно в статьях дается только "тело" криптовщика и нужные заголовки/хвосты надо добавлять
дак вот пробую сначало ручками добавить новую цекцию, ручками меняю EP, размер секции естественно с учётом выравнивания, дак вот ступор, где взять сам бинарный код, естественно масм просто джамп не скомпилирует, вот как я сюда попал) пересмотрел исходники, так там есть сразу и алгоритм "шыфрования" (пусть xor) и сразу же обратный алгоритм, как я понял програма копирует из себя код декриптора ? (поправте если не прав, если оно так то как его достать, желательно не пример а сам алгоритм) сейчас моя цель сделать программу, которая будет добавлять в ехе файл цекцию с джампом на оригинальный ЕР (вроде должно работать) а уже дальше мудрить с антиотладкой, тд.тп.
утро вечера мудренее, вот что получилось 1. оригинальный файл (секции) http://piccy.info/view/580a777c8f4729e9abf3235f8f36a4c2/ 2. ОЕР - 9EC68 (rva) гдето в средине секции 3. добавил новую секцию (.mike) 3. вставил туда джамп, ждамп получился такой 68 68 EC 49 00 C3 в дебагере получилось PUSH .... RET (вроде как всё нормально) 4. EP исправил на Virtual Offset новой секции (пробовал методом тыка) результат: http://i.piccy.info/i4/90/51/238ce5d500f4389cc49d489c6780.png 5. запустил обрадовался, работает ) проблема появилась другая, когда в дебагер кидаю оригинальный файл, все отлично, когда кидаю новый файл.... получаю окошко но файл всё равно работает, что я сделал не правильно ? (скорее всего что то забыл еще подправить ?)
Это нормально. Подавляющее большинство сжатых или прошедших через крипторы файлов ведут себя точно так же.
но файл всё равно работает, что я сделал не правильно ? (скорее всего что то забыл еще подправить ?) точно не скажу, но возможно, EP перебит на секцию, отличную от (1-ой?) кодовой секции, либо посмотри поля BaseOfCode, BaseOfData и т.п. поля - должны быть скорректированы верно. Пока все, дальше будет видно.
я так и не разобрал что там перенастраивать, пробовал увеличивать SizeOfCode но ничего не изменилось интересует алгоритм добавление своих API (без примеров, просто схема на словах) пробую перед джампом всунуть меседж бокс, только вот сразу вопрос что нужно брать в качестве вводных параметров, нужно еще в DATA добавить строчки (caption, message) ?
Не обязательно в data, можно и в свою же секцию. Для добавления апи можно расширить существующую директорию импорта, но это не айс, лучше создать новую в новой секции, туда "скопипастить" старую (естественно пофиксить все оффсеты придется) + добавить messagebox. P.S. А вообще тут кажется сорцы тулзы есть Code Snippet Creator от Икзелиона, она как раз добавляет импорт к уже существующему.
Acrobat А с увеличением SizeOfCode захватили свою секцию с новой EP? Потому как Olly как раз так и проверяет это: попадает ли хоть один байт секции с EP в пределы между BaseOfCode и BaseOfCode + SizeOfCode.
если на примере криптора - то гораздо лучше создать свой файл максимально похожим на оригинал (будь то от борладн,визуал студии и др), в него запихнуть криптованный файл, а уже после подгружать в памяти. При этом такие херни, как табличка импорта и прочее - все создается свое (фэйк). Сдвигать и прочее не придется
"скопипастить" таблицу импорта значит переместить их в новую секцию + добавить нужны АPI, и в DataDirectory поправить адрес на новую таблицу ? старую таблицу забить нулями ? таблицу експорта можно не трогать ? Не обязательно в data, можно и в свою же секцию. а как же характеристики секции ? или не влияет ? то гораздо лучше создать свой файл максимально похожим на оригинал меня пока это меньше всего волнует, нету пока такой задачи научусь добавлять апи, и использовать их, будет для меня очередное достижение не закрытый вопрос остался как же генерировать код.... пробовать его скомпилировать в другой програме и оттуда вырезать ? как же крипторы их генерят (сорцы смотрел, но всёравно так и не понял, он получается есть в коде готовый) ?
Acrobat По мойму рано вы за крипторы взялись. Качественные весьма сложны, там и пермутация и виртуальные машины.
да пока не хочу ничего криптовать) разбираюсь (простодля разбора взял исходники с крипторов, а там много чего интересного) просто мои знания с института не совпадают с действительностю, вот и сижу мучаюсь соглашусь конечно, возможно и рано, но всё таки пока хочу знать сами способы (в инете всё расбросано очень)