Сохранен 115
https://2ch.hk/b/res/313191797.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Сап аноны. Стоит задача реализовать защиту от декомпиляции (лаба по информационной безопасности). Пе

 Аноним 20/11/24 Срд 08:57:35 #1 №313191797 
17320818451241970219951412269936.jpg
17318676318140.png
Сап аноны. Стоит задача реализовать защиту от декомпиляции (лаба по информационной безопасности).
Первое что приходит на ум это написать packer который шифрует исходный exe, и пишет его в PE секцию загрузчика. Но реализация этого подхода довольно сложная, вряд-ли получится защитить лабу. Можно ли как то реализовать по простому, по народному? Например просто зашифрованный екзешник дописать в конец файла загрузчика?
Аноним 20/11/24 Срд 08:59:53 #2 №313191844 
Во всех реализациях что я находил, пишут в PE
Аноним 20/11/24 Срд 09:02:25 #3 №313191887 
Бама
Аноним 20/11/24 Срд 09:05:08 #4 №313191928 
>>313191797 (OP)
Обфускация исходного кода программы. А так полностью защититься невозможно. Можно только усложнить обратную разработку, но против дебаггера нет защиты.
Аноним 20/11/24 Срд 09:05:19 #5 №313191932 
Зашифруй свой бинарник с помощью AES или XOR.
Добавь небольшой загрузчик, который на этапе запуска:
Расшифровывает оригинальный код.
Загружает его в память и вызывает (например, с помощью LoadLibrary для DLL или CreateProcess для EXE).
или
Вынеси критические части функционала в DLL или динамически загружаемый модуль.
Шифруй/загружай эту DLL на этапе выполнения.
Таким образом, основной EXE будет содержать минимальную логику, а скомпрометировать его без анализа DLL станет сложнее.
sage[mailto:sage] Аноним 20/11/24 Срд 09:06:43 #6 №313191951 
>>313191797 (OP)
Писать прогу на языке который не декомпилируется без потерь:_)
Аноним 20/11/24 Срд 09:08:36 #7 №313191977 
>>313191928
> Обфускация
> Компилируемого языка
А схуяли нельзя защититься от дебагера? Самошифрование, проверка целостоности. Есть еще ловушки для дебагера, я не помню, как называется эта техника, но от них дебагер падает.
Аноним 20/11/24 Срд 09:10:28 #8 №313192006 
>>313191928
По условию задания обфускацию нельзя юзать, надо именно загрузчик
Аноним 20/11/24 Срд 09:12:43 #9 №313192050 
>>313191932
То есть можно просто два exe оставить, даже не склеивать их?
Аноним 20/11/24 Срд 09:16:37 #10 №313192136 
>>313191951
Писать на с++ надо по условию
Аноним 20/11/24 Срд 09:19:06 #11 №313192180 
>>313191797 (OP)
Где вам такие лабы дают? Вы чё там на парах малварь пишете?
Назови вуз или хоть город, правда интересно.
Аноним 20/11/24 Срд 09:27:54 #12 №313192360 
bump
Аноним 20/11/24 Срд 09:43:45 #13 №313192786 
>>313192180
Вуз не могу палить
Аноним 20/11/24 Срд 09:47:56 #14 №313192893 
>>313192786
Да кому не похуй здесь? Если бы тут твои протыки сидели, они бы и так тебя спалили уже, а рядовой двачер что сделает?
Аноним 20/11/24 Срд 09:50:17 #15 №313192952 
>>313191797 (OP)
Я когда писал малварь, то делал полиморфный движок. все на ассемблере чистом кстати. Я в рантайме искал хедеры пе файла, потом генерировал случайную функцию-енкриптор и функцию-декриптор (написал что-то вроде небольшого ассемблера) и ими шифровал бинарь. Но там куча подводных и это просто сложно. Сейчас пытаюсь что-то подобное сделать на расте, но уже с парой дизассемблер-ассемблер, чтоб модифицировать код, а не шифровать. Написать загрузчик пе файлов не так сложно, но можешь просто компилировать проект как шейред обжект, его кидать в местный /tmp на виндовсе и оттуда загружать (правда защита плохая будет ибо его можно будет перехватить, но для Лабы сойдёт). Алсо можешь попробовать защиту от бегущих дизассемблеров, погугли всякие трюки типа джамп-ин-зе-мидл и прочее. Другой вариант это написать небольшую виртуальную машину, и в ней запускать код. Вообще, звучит странно, где это тебе такие "лабы" дают? Это хуйня которой занимаются хакеры со стажем а не зелёные в провинциальных ПТУ. Может ты хоть намекнешь что тебе надо?
Аноним 20/11/24 Срд 09:51:36 #16 №313192982 
>>313191797 (OP)
Наверное стоило загуглить, а не спрашивать анонов в /b/, а долбоеб?
Аноним 20/11/24 Срд 09:53:06 #17 №313193017 
>>313191977
Потому что любая твоя защита от дебагера обходится, если екзешник запускается на машине которую ты не контролируешь, то твой экзешник взломают при достаточном желании. Ну самое эффективное можешь свою вм со своей архитектурой придумать и в нее твой экзешник перегонять.правда это работы на пару лет команды, а не уровень лабы
Аноним 20/11/24 Срд 09:54:35 #18 №313193045 
>>313192952
>функцию-енкриптор и функцию-декриптор
Не сработает в современном мире, если у тебя файл не подписанный такую хуйню выполнит его любой антивирь ебнет моментально.
Аноним 20/11/24 Срд 09:54:43 #19 №313193052 
>>313192952
О, можешь дать гайдов на интеловский асм? Помимо той самой книги.
Я вроде и понимаю, зачем нужны регистры и как пушить попить колить, но нет понимания, как реализовывать нужную мне логику вообще любую, дай мне абстрактное задание на написание проги сложнее хелловорлда на асме и уже обсер

На фоне этого начинаю считать себя клиническим ибмецилом, а людей, которые пишут на ассемблере - полубогами
Аноним 20/11/24 Срд 09:54:57 #20 №313193055 
>>313193017
>правда это работы на пару лет команды, а не уровень лабы
Написать простую вм это нехуй делать, вопрос только в том, как ОП будет под нее собирать свой код. Но если ему достаточно показать хелоуворлд, то может сразу на байткоде пример написать.
Аноним 20/11/24 Срд 09:56:53 #21 №313193101 
>>313193055
Простая вм и не защитит код нихуя, это должна быть жоподробительная хуйня для дебага, а не просто лишний шаг с через трансяторы вида jmp ->jmpByVasyaPetushok
Аноним 20/11/24 Срд 10:00:10 #22 №313193166 
>>313191797 (OP)
Переделай все на js.
Аноним 20/11/24 Срд 10:00:12 #23 №313193169 
>>313191977
> Есть еще ловушки для дебагера, я не помню, как называется эта техника, но от них дебагер падает.
Обходится буквально в два нажатия включением скиллахайда в 50% и титанхайда в 99% случаев
Аноним 20/11/24 Срд 10:01:03 #24 №313193193 
Просто купи денуву
Аноним 20/11/24 Срд 10:01:41 #25 №313193204 
>>313193166
Лучше на пхп
Аноним 20/11/24 Срд 10:02:34 #26 №313193226 
>>313193052
>логику
Попробуй использовать jmp

Я чего-то не понимаю или тебе реально не хватает миллионов доков из интернета?
Аноним 20/11/24 Срд 10:02:56 #27 №313193236 
>>313193193
\thread
Аноним 20/11/24 Срд 10:07:49 #28 №313193373 
>>313192952
>>313192180
Вы ебанутые? Это уровень более менее приличного технический вуза дс-2
Аноним 20/11/24 Срд 10:08:59 #29 №313193407 
>>313193052
Хз, по поводу структуры - само получилось. Я как-то никогда этому и не учился. Я впервые изучал по "Программирование на языке ассемблера. NASM для ОС UNIX" Столярова. Она маленькая, но хорошо знакомит с понятиями. Правда она рассказывает про i386, так что amd64 я учил сам потом. Если хочешь, то кидай телегу, могу попробовать помочь.
Аноним 20/11/24 Срд 10:11:17 #30 №313193478 
>>313193373
Нихуя, сделать рабочую защиту это нихуя не уровень вузаособенно лабы, а зачем делать нерабочую защиту в целом непонятно.
Аноним 20/11/24 Срд 10:12:38 #31 №313193511 
>>313193373
И в скольких более-менее приличных вузах дс-2 ты учился или преподавал? Мне кажется, или тут где-то замешана ошибка выжившего? Типичная специальность ИБ это дрочка законов и программирование разных операций на матрицах. Я могу быть неправ конечно, тоже не слишком много вузов повидал.
Аноним 20/11/24 Срд 10:13:07 #32 №313193525 
>>313193101
Ну так ОПу явно не нужно создавать что-то рабочее, ему нужен максимум кое-как работающий прототип.
Аноним 20/11/24 Срд 10:16:17 #33 №313193623 
>>313193045
У меня работало, потому что во-первых, функции были размером по >500 байтов, плюс все происходило прямо на месте (я не выделял памяти с правами на выполнение, у меня были модифицированы права .text так, что туда можно было писать. Вроде ав ничего не находил, не знаю.
Аноним 20/11/24 Срд 10:20:16 #34 №313193736 
>>313193525
Ну бля в таком случае можно пройтись и экзешнику и заменить все джампы на нопы и просто в начало мейна засунуть хуйню которая делает наоборот.
>>313191797 (OP)
>Первое что приходит на ум это написать packer который шифрует исходный exe, и пишет его в PE секцию загрузчика.
Соснешь хуйца в борьбе с виндовс дефендером, он будет принципиально удалять эту поеботу с твоего компа в момент компиляции даже если ты его выключишь, только удаление с корнями его остановит.исключение по какой то причине он игнорирует в этом случае, хз почему
>Например просто зашифрованный екзешник дописать в конец файла загрузчика?
Это тоже
Аноним 20/11/24 Срд 10:23:09 #35 №313193829 
>>313193623
Ну хз, когда ты это делал, последние пару лет целом виндовский дефендер орет на любое действие которое выходит за рамки доступа к аппдате если у тебя не подписанный экзешник.
Аноним 20/11/24 Срд 10:23:23 #36 №313193837 
>>313193736
>Заменить все джампы на нопы
Очень смешно. Сразу видно, что ты с машинным кодом никогда не работал. У инструкций на амд64 процессорах разная длинна, тебе чтоб такое по-нормальному реализовать придется писать целый дизассемблер (что нихуя не просто).
Аноним 20/11/24 Срд 10:25:01 #37 №313193885 
>>313193837
Ееесть такое
Аноним 20/11/24 Срд 10:25:22 #38 №313193897 
>>313193837
И хуле там не сработает? Какая разница что длина разная если ты потом это ревертишь, это просто замена байтиков на байтики которую только дизассемблер увидит.
Аноним 20/11/24 Срд 10:29:31 #39 №313194025 
>>313193897
Ну в целом можно, но нахуя? Это имело бы смысл, если бы сохранялась целостностьправильность кода, а так легче просто ксором по .text'у пройтись и всё.
Аноним 20/11/24 Срд 10:31:13 #40 №313194088 
>>313193017
Так я и не спорю. Но защиты имеются.
Аноним 20/11/24 Срд 10:34:58 #41 №313194218 
>>313193897
>>313194025
Кстати тут важно, что это будет на биекция. Есть куча разных видов jcc, и если ты их всех заменишь на ноп, то тебе нужно будет ещё угадать где какой.
Аноним 20/11/24 Срд 10:36:53 #42 №313194277 
>>313194025
Так целостность сохранится путем того что ты потом сам это фиксишь
>а так легче просто ксором по .text'у пройтись и всё.
Тут по факту, но это обойти легче, это сразу заметишь, а на то что джапы заменили уйдет секунд 40.
Аноним 20/11/24 Срд 10:39:54 #43 №313194382 
>>313194277
>Так целостность сохранится путем того что ты потом сам это фиксишь

Так я имею ввиду статическая целостность. Чтоб дизассемблер не падал с ошибкой, а выдавал неправильный результат.

>уйдет секунд 40

Ну вот разницы особой и нет.
Аноним 20/11/24 Срд 10:50:18 #44 №313194709 
>>313194382
Ну тут по факту все конечно.
А вообще оп можешь просто написать хуйню которая во время компайла будет тебе opaque predicate сувать везде, по факту делает нихуя, реализовать легко, разбираться в дизасемблере без скрипта деобфускаратора который у всех есть заебешься а если они еще и во время рантайма будут такими становится то и с скриптом заебешься.
Аноним 20/11/24 Срд 11:09:18 #45 №313195246 
image
>>313191797 (OP)
Шифруешь сотню байтов на OEP, расшифровываешь через TLS колбэк?
Аноним 20/11/24 Срд 11:26:14 #46 №313195748 
>>313191797 (OP)
Что-то на виндовом. Компилятор-то какой, для начала?
Аноним 20/11/24 Срд 11:27:43 #47 №313195796 
>>313195748
жжжёпа твоей мамаши мой компилятор, пердолик
Аноним 20/11/24 Срд 11:31:41 #48 №313195903 
>>313195246
ДРЛка? Серьёзно? Она же лопнет быстрее той самой банки.
Аноним 20/11/24 Срд 12:30:11 #49 №313197791 
бамп
Аноним 20/11/24 Срд 12:35:14 #50 №313197961 
Бамп
Аноним 20/11/24 Срд 12:42:18 #51 №313198230 
>>313191797 (OP)
>пишет его в PE секцию загрузчика

Это что значит? Загрузчик это часть операционной системы.

Декомпиляция невозможно. Так как компиляция это не гомоморфное преобразование. На выходе машинный код. И плюсовый код из него уже не восстановить.

Если нужно защитить какую-то последовательность байт в программе, то шифровать
Аноним 20/11/24 Срд 12:44:35 #52 №313198314 
Пиздос. Зачем нужна защита от декомпиляции?
Я правильно понял что теперь в российских вузах учат как сосать хуй так называемым "правообладателям"?

Сейчас кресты это то же самое что было в 90х. У меня тут книжка 21 день там цпп похоже на то, что есть сейчас? На сколько я знаю, там теперь все надо делать через новую стандартную библиотеку
sage[mailto:sage] Аноним 20/11/24 Срд 12:46:12 #53 №313198366 
>>313197961
Зачем ты бампаешь дальше скажи мне зачем ты бампаешь дальше чтобы получать такие ответы?
>>313195748
>>313198230
>>313198314
Зачем ты бампаешь тебе уже сказали всё что можно было и больше зачем ты бампаешь
Аноним 20/11/24 Срд 12:47:26 #54 №313198414 
>>313198366
ЧТОБЫ ТЕБЕ СТАЛО НЕПРИЯТНО.
sage[mailto:sage] Аноним 20/11/24 Срд 12:48:00 #55 №313198430 
>>313198414
Ну вот мне стало ты добился своего, прекрати пожалуйста.
Аноним 20/11/24 Срд 12:54:04 #56 №313198659 
>>313191932
>Добавь небольшой загрузчик, который на этапе запуска:
Расшифровывает оригинальный код.
>Шифруй/загружай эту DLL на этапе выполнения.

В чем проблема посмотреть в отладчике, что твоя программа запускатор делает? Это нихуя не защита.
Аноним 20/11/24 Срд 12:59:43 #57 №313198863 
>>313198366
>Зачем ты бампаешь дальше
Может ещё кто то вкинет идеи, я адекватное сохраняю чтобы протестить потом
Аноним 20/11/24 Срд 13:02:32 #58 №313198959 
>>313198863
Вот эта >>313195246 чем не угодила? Или буковки незнакомые страшные?
Аноним 20/11/24 Срд 13:02:50 #59 №313198969 
>>313193736
>Соснешь хуйца в борьбе с виндовс дефендером, он будет принципиально удалять эту поеботу с твоего компа в момент компиляции даже если ты его выключишь
Я пробовал эту репу, дефендер ругался, но при отключении пропускал
https://github.com/frkngksl/Huan?tab=readme-ov-file
Аноним 20/11/24 Срд 13:02:54 #60 №313198973 
Просто удивительно, как в месте, где треды про монти-холла или 0.9999(9) = 1 уходят в бамплимит, можно также встретить такого рода вопросы и адекватные ответы на них. Или Абу иногда нагоняет интеллектуальных ботов для разряжения обстановки?
Аноним 20/11/24 Срд 13:04:29 #61 №313199015 
>>313198959
>буковки незнакомые страшные
Да. Я это сохранил но не гуглил ещё пока чё ета
Аноним 20/11/24 Срд 13:10:03 #62 №313199221 
>>313198314
Нет c++98 и c++11+ - это два разных языка, как сами кресты и чистый си
Аноним 20/11/24 Срд 13:10:44 #63 №313199245 
17316545975261.png
>>313198230
>гомоморфное
Изоморфное, ты хотел сказать?
Аноним 20/11/24 Срд 13:24:18 #64 №313199678 
>>313199015
А с хуаном своим разобрался?
Аноним 20/11/24 Срд 13:30:04 #65 №313199870 
>>313199245
Да, ты прав, казел. Гомоморфизм в обеи стороны это изоморфизм.
Аноним 20/11/24 Срд 13:32:40 #66 №313199954 
image.png
>>313199870
гомоморфизм
Аноним 20/11/24 Срд 13:38:33 #67 №313200136 
т126127.PNG
т6216.PNG
16973083942400.png
>>313191797 (OP)
А что гпт говорит твой? Это не стандартная задача какая-то?
Аноним 20/11/24 Срд 13:43:23 #68 №313200298 
>>313200136
Промпт-инженер в треде, я спокоен
Аноним 20/11/24 Срд 13:45:48 #69 №313200378 
>>313191797 (OP)
Ваще изи все делоешь через чатжипити. Ты блядь как с луны свалился такое на дваче спрашивать у местных полупокеров
Аноним 20/11/24 Срд 13:55:12 #70 №313200667 
>>313198969
>но при отключении пропускал
У виндовс дефендера есть фича включатся самому и вырезать твои файлы через рандомный промежуток времени, мне эту хуйету через какие то скрипты с трастединсталером пришлось из системы вырезать что бы оно мне софт не вырезало
Аноним 20/11/24 Срд 14:01:24 #71 №313200851 
>>313191797 (OP)
придумай сплоит, который ломает инструмент при попытке смотреть код например. или лучше взрывает компудахтер нахуй
Аноним 20/11/24 Срд 14:03:10 #72 №313200904 
image
>>313200136
> 2 пик
Тащемта, самый простейший вариант. Как раз для лабы.
Аноним 20/11/24 Срд 14:36:38 #73 №313202142 
это случайно не ты пару дней назад свой нерабочий криптолокер в зогаче выкладывал?
Аноним 20/11/24 Срд 14:41:16 #74 №313202306 
>>313192786
Ахах
Аноним 20/11/24 Срд 14:46:14 #75 №313202472 
17317714284890.jpg
>>313202142
Блять, было бы смешно, если бы это реально подобный гений так разводил на информацию об обходе av которой в интернете и так полно. Ещё забавно, что оп не ставит точки в конце, как и этот >>313193373. Может просто догадки, но блять, лол.
Аноним 20/11/24 Срд 14:54:32 #76 №313202765 
>>313200136
Примерно так пробовал делать с самого начала, но чатгпт так и не сгенерил рабочий код, и не было времени дебажить
Аноним 20/11/24 Срд 15:02:35 #77 №313203018 
image
>>313202765
> чатгпт так и не сгенерил рабочий код
> не было времени дебажить
> 20 строк высера первокурсника
> 20 строк высера первокурсника
> 20 строк высера первокурсника
Пердикс, ты ахуел!
Аноним 20/11/24 Срд 15:11:24 #78 №313203287 
>>313191797 (OP)
Просто юзаешь протектор Themida (пиратку с рутрекера), он защищит твою прогу в миллион раз лучше любой обфускации
Аноним 20/11/24 Срд 15:27:27 #79 №313203809 
>>313202765
Это же какой-то кал, а не решение твоей задачи, я думал, что тебе в онлайне надо уже загруженный в память исполняемый файл модифицировать, а тут просто через побитовое сложение байта по модулю два расшифровываешь исполняемый, это сработает только в том случае, если у тебя в исходном запускаемом файле будет команда на модификацию последующих запускаемых файлов, только ни один защитник не позволит такого сделать файлу из неизвестного источника
Аноним 20/11/24 Срд 15:28:36 #80 №313203842 
123.PNG
2.PNG
3.PNG
>>313202765
>чатгпт так и не сгенерил рабочий код
Ты чо ебанутый? Омни1 генерит рабочий код искаробки.
Аноним 20/11/24 Срд 15:39:22 #81 №313204172 
Как же ИИ скоро заменит макак "кодеров". Ууух бля.
Хехех. Зарплаты уровня Васяна - фрещеровщика и недовольные ебальники все имаджинировали?
В какое удивительное время мы все сейчас живем.
Аноним 20/11/24 Срд 15:42:16 #82 №313204252 
>>313191797 (OP)
Повезло вам. У нас на ИБ какое то дерьмо преподают, уже третий год рассказывают поверхностно о правовой составляющей базовые понятия и о передаче сигнала через провода. А единственный препод с маломальски интересной инфой предпочел не ходить на пары.
Аноним 20/11/24 Срд 15:43:26 #83 №313204291 
>>313204172
Промпт-инженер, оп-хуй, ИИ-шиз. Столярова не хватает, хотя он формально был упомянут. Какой же хороший тред, однако! Спокойствие максимальное чувствую.

Серьёзно блять?
Аноним 20/11/24 Срд 15:47:43 #84 №313204440 
image
>>313203842
> искаробки
> CreateProcess
Аноним 20/11/24 Срд 15:47:57 #85 №313204445 
>>313204252
Этим преподом был Альберт Эйпштейн?
Аноним 20/11/24 Срд 15:48:27 #86 №313204463 
>>313204440
Чо с ебалом? Просил народный способ.
Аноним 20/11/24 Срд 15:57:46 #87 №313204779 
image
>>313204463
Ты ебанутый?
Аноним 20/11/24 Срд 16:03:23 #88 №313204987 
>>313200378
Чатгопота не может в код с самошифрованием. Сам пробовал заставить написать.
Аноним 20/11/24 Срд 16:04:02 #89 №313205017 
>>313204252
Надо было в кибербез. Теперь дрочи бумажки и юридические нормы.
Аноним 20/11/24 Срд 16:05:38 #90 №313205080 
>>313204779
Чо не так, деб?
Аноним 20/11/24 Срд 16:08:13 #91 №313205157 
>>313204779
Типичная низкоуровневая хуета, это ты ещё NT-шных функций не видел
Аноним 20/11/24 Срд 16:11:10 #92 №313205255 
IMG20241120155941.jpg
IMG20241102165853.jpg
IMG20240930012327.jpg
IMG20241030150229.jpg
сынок к чему вопросы дедушке задаешь где и как был в какой яме сидел сынок по уделу жить надо нах согласно моему это питаться гречкой из кастрюли и запивать черноголовкой понимаешь сынок все просто очень а кто где и как по лужам прыгал ебать не должно ибо придет народ и худо будет даже не поможет огненная кара с небес ибо выжившие из гог магог бессмертны и причастны
Аноним 20/11/24 Срд 16:11:29 #93 №313205268 
Screenshot 2024-11-20 050451.png
Screenshot 2024-11-20 050503.png
>>313203018
Ну риальна не было!
Щас сел и дофиксил высер гпт. Вроде работает теперь. Но я все равно не доверяю этой хуйне на скринах, что то мне подсказывает что можно сделать проще.......
Аноним 20/11/24 Срд 16:12:14 #94 №313205294 
>>313205080
На что у тебя указывает encryptedData, школотрон тупорылый?
Аноним 20/11/24 Срд 16:12:19 #95 №313205299 
>>313205157
Думаешь он доебался, что аргументов дохуя чтоли? Так там половина опциональна и можно нули передавать. Из нужных только необходимые для работы указатели.
Аноним 20/11/24 Срд 16:12:54 #96 №313205320 
>>313205294
Где? Не вижу.
Аноним 20/11/24 Срд 16:13:26 #97 №313205340 
>>313205157
Это не низкоуровневая хуета, это шиндовс криво спроектированная система с уродским интерфейсом и корявой проприетарный реализацией сишки.
Аноним 20/11/24 Срд 16:13:53 #98 №313205351 
>>313205340
Долбоёб
Аноним 20/11/24 Срд 16:14:49 #99 №313205374 
>>313205294
На адрес.
Аноним 20/11/24 Срд 16:16:07 #100 №313205415 
ОП, ты как доучился до таких заданий, если ты нихуя не понимаешь и не можешь сделать сам?
Аноним 20/11/24 Срд 16:16:30 #101 №313205430 
>>313205351
Ты
Аноним 20/11/24 Срд 16:19:04 #102 №313205510 
>>313205268
Что тебе не нравится в этой красивой инъекции? ЗАчем ты нас мучаешь? Какая у тебя цель? Лабу написать, или что нахуй? Максимально коротко лабу написать?
Аноним 20/11/24 Срд 16:19:50 #103 №313205543 
>>313205294
Бля, ну может я чо-то не втыкаю.

char encryptedData = (char)malloc(encryptedSize);

Выделяем память по адресу encryptedData размером encryptedSize

Что блядь не так? Аллоу!
Аноним 20/11/24 Срд 16:20:56 #104 №313205588 
>>313205510
Можно как то сделать, чтобы без dummy.exe работало?
Аноним 20/11/24 Срд 16:22:39 #105 №313205656 
7ZKI21EufqA.jpg
>>313191797 (OP)

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

1. Шифрование исполняемого файла:
- Вы можете зашифровать ваш исполняемый файл (EXE) с помощью простого алгоритма шифрования, например, AES или XOR. Затем сохраните зашифрованные данные в конце вашего загрузчика.

2. Добавление зашифрованного файла:
- После шифрования вы можете добавить зашифрованные данные к вашему загрузчику. Это может быть сделано, например, с помощью функции `WriteFile`, чтобы дописать зашифрованный файл в конец.

3. Декомпрессия и запуск:
- При запуске вашего загрузчика вы можете сначала прочитать зашифрованные данные, расшифровать их в памяти и затем выполнить расшифрованный код. Для этого можно использовать функции Windows API, такие как `CreateProcess` или `VirtualAlloc`.

4. Обфускация кода:
- Дополнительно вы можете использовать обфускацию кода вашего загрузчика, чтобы усложнить анализ и декомпиляцию.

5. Проверка целостности:
- Вы можете добавить проверку целостности зашифрованного файла, чтобы убедиться, что он не был изменен.

### Примерный алгоритм:

1. Шифрование:
- Зашифруйте ваш EXE файл и сохраните его как `encrypted.exe`.

2. Создание загрузчика:
- Создайте загрузчик, который будет:
- Открывать `encrypted.exe`.
- Чтение зашифрованного содержимого.
- Расшифровывать содержимое в памяти.
- Запускать расшифрованный код.

### Пример кода (псевдокод):

```python
import os
from Crypto.Cipher import AES
import subprocess

def encrypt_file(filename, key):
# Реализация шифрования файла
pass

def decrypt_and_run(encrypted_data, key):
# Расшифровка данных и запуск
pass

# Основной код
key = b'my_secret_key_16' # Ключ шифрования
encrypt_file('my_program.exe', key)

# Загрузчик
with open('encrypted.exe', 'rb') as f:
encrypted_data = f.read()

decrypt_and_run(encrypted_data, key)
```

### Замечания:
- Обратите внимание, что такие методы могут обеспечить лишь базовую защиту. Опытные декомпиляторы и реверс-инженеры могут все еще найти способы обойти вашу защиту.
- Всегда тестируйте ваш код на различных системах, чтобы убедиться, что он работает корректно.
- Убедитесь, что вы соблюдаете все законы и правила, касающиеся использования шифрования и защиты программного обеспечения.
Аноним 20/11/24 Срд 16:24:02 #106 №313205699 
А нахуя его дописывать, простите? ОП, ты что, реально малварь пишешь?
Аноним 20/11/24 Срд 16:24:27 #107 №313205716 
Да, вы можете реализовать более простую защиту от декомпиляции, добавив зашифрованный исполняемый файл в конец загрузчика. Этот подход не требует сложной реализации и может быть достаточно эффективным для учебной лабораторной работы. Вот основные шаги, которые вы можете выполнить:

### 1. Шифрование исполняемого файла

Используйте простой алгоритм шифрования, например, XOR или AES, чтобы зашифровать ваш исполняемый файл (EXE). Это можно сделать с помощью библиотеки, такой как OpenSSL или Crypto++.

### 2. Создание загрузчика

Создайте загрузчик, который будет выполнять следующие действия:

- Открывать зашифрованный файл.
- Чтение зашифрованного содержимого.
- Расшифровка содержимого в памяти.
- Запуск расшифрованного кода.

### 3. Дописывание зашифрованного файла

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

### Пример кода

Вот примерный код, который иллюстрирует, как это можно сделать:

```cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <windows.h>

// Простой XOR шифратор
void xorEncryptDecrypt(std::vector<char>& data, char key) {
for (size_t i = 0; i < data.size(); ++i) {
data ^= key;
}
}

// Функция для чтения файла в вектор
std::vector<char> readFile(const std::string& filename) {
std::ifstream file(filename, std::ios::binary);
return std::vector<char>((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
}

// Функция для записи данных в файл
void writeFile(const std::string& filename, const std::vector<char>& data) {
std::ofstream file(filename, std::ios::binary);
file.write(data.data(), data.size());
}

// Загрузчик
void loader(const std::string& encryptedFile, char key) {
// Чтение зашифрованного файла
std::vector<char> encryptedData = readFile(encryptedFile);

// Расшифровка
xorEncryptDecrypt(encryptedData, key);

// Запуск расшифрованного кода
// Здесь вы можете использовать VirtualAlloc и CreateProcess для выполнения кода в памяти
// Это требует дополнительного кода и может быть сложным
}

int main() {
const std::string originalFile = "my_program.exe";
const std::string encryptedFile = "encrypted.exe";
char key = 'K'; // Ключ шифрования

// Чтение оригинального файла
std::vector<char> originalData = readFile(originalFile);

// Шифрование
xorEncryptDecrypt(originalData, key);

// Запись зашифрованного файла
writeFile(encryptedFile, originalData);

// Дописывание зашифрованного файла в конец загрузчика (текущего исполняемого файла)
std::ofstream loaderFile("loader.exe", std::ios::binary | std::ios::app);
loaderFile.write(originalData.data(), originalData.size());
loaderFile.close();

// Запуск загрузчика
loader(encryptedFile, key);

return 0;
}
```

### Замечания:

1. Безопасность: Этот метод не обеспечивает сильной защиты. Опытные реверс-инженеры могут легко обойти его. Однако для учебной лаборатории это может быть достаточным.

2. Использование памяти: Для выполнения расшифрованного кода вам нужно будет использовать функции Windows API, такие как `VirtualAlloc` для выделения памяти и `CreateProcess` для запуска кода.

3. Тестирование: Убедитесь, что вы тестируете ваш код на различных системах и конфигурациях, чтобы гарантировать его работоспособность.

4. Законодательство: Убедитесь, что вы соблюдаете все законы и правила, касающиеся использования шифрования и защиты программного обеспечения.
Аноним 20/11/24 Срд 16:26:27 #108 №313205788 
>>313205699
Потому что нужно чтобы в финале был один исполняемый файл
Аноним 20/11/24 Срд 16:27:56 #109 №313205840 
>>313205788
А не легче тогда просто его в файл сразу встроить? Ну там incbin'ом каким-нибудь.
Аноним 20/11/24 Срд 16:30:37 #110 №313205930 
1. Сбор ресурсов
Соберите все ресурсы (файлы, данные), которые нужно встроить, и сохраните их в отдельной директории.
Сериализуйте эти данные в единый бинарный файл. Это может быть архив (например, .zip) или просто последовательность бинарных блоков с метаинформацией (размеры, имена файлов).
2. Шифрование
Используйте симметричный алгоритм шифрования (например, AES или XOR, если нужна простая реализация).
Зашифруйте объединённый файл ресурсов с ключом, который будет встроен в код вашего загрузчика.
Результат шифрования сохраните как отдельный бинарный файл.
3. Создание загрузчика
Напишите программу-загрузчик, которая:
Включает в себя зашифрованный файл ресурсов как бинарные данные (например, в секции .rsrc или как массив данных, встроенный в код).
При запуске расшифровывает файл ресурсов в память.
Достаёт нужные файлы или данные и использует их (например, запускает встроенный .exe или отображает шрифты/картинки).
4. Упаковка ресурсов в загрузчик
Объедините зашифрованный файл ресурсов с загрузчиком:
Встроить как бинарный массив в исходный код (используя генератор массивов, например xxd в Linux или bin2c).
Или просто дописать в конец исполняемого файла и учитывать это при чтении.
5. Обфускация и защита
Зашифруйте строки и ключи шифрования внутри кода загрузчика.
Добавьте проверку целостности бинарного файла, чтобы обнаружить изменения.
Используйте антивиртуализационные и антиотладочные трюки, чтобы усложнить анализ.
6. Сборка финального исполняемого файла
Скомпилируйте загрузчик с встроенными ресурсами и зашифрованным кодом.
Используйте упаковщики (например, UPX или custom packer), чтобы дополнительно усложнить анализ.
Примечания
Такой подход создаёт монолитный файл, который содержит все данные, но основная уязвимость будет в момент расшифровки — злоумышленник может проанализировать процесс исполнения.
Если задача учебная, то можно упростить реализацию, например, использовать XOR вместо сложных алгоритмов шифрования.
Аноним 20/11/24 Срд 16:32:16 #111 №313205992 
>>313205543
Описание функции, блять, прочти.
Аноним 20/11/24 Срд 16:33:50 #112 №313206038 
>>313205788
да подгружай свой криптолокер дллкой, чё ты как этот
Аноним 20/11/24 Срд 16:39:32 #113 №313206232 
IMG20241030152620.jpg
будет ли обсуждение нахуй создали
sage[mailto:sage] Аноним 20/11/24 Срд 16:56:27 #114 №313206842 
>>313205992
Та мне похуй лол. За пидораса опа код напиши, так еще и в документацию залупную теперь лезть чтоли? Ахахха.
Нахуй. Оп - хуй, а я скрыл тред.
Аноним 20/11/24 Срд 18:14:28 #115 №313209420 
>>313199221
Спасибо
Ну ебать
comments powered by Disqus

Отзывы и предложения