169 похожих чатов

А вот слышал, что под дос практиковался самоизменяющийся код а

подвиндовс это не реализуемо, правда ли это? Можно ведь напихать каких то комманд в секцию data по идее и сделать секцию code writable и потом туда копировать скажем строку из data потом джампиться на нее потом снова туда же копировать, снова джампиться как то так ведь и под виндой можно?

19 ответов

15 просмотров

думаю из самой работающей программы ищзменить тип секции нельщзя (ОС не даст), а вот пропатчить внешне изменив тип секции можно

Как ты представляешь себе "копирование команды"? Как ты собираешься парсить из кучи байтов - команды? Был mov eax, 1 Ты скопировал его, прыгнул, скопировал, и затёр eax, потом скопировал cmp, прыгнул, а в EAX уже другое. Аналог понял? Придётся сохранять регистры, но ещё не факт, что это всё нормально сработается: mov eax, [esp+4] ; т.к до этого ты сохранил регистр, там уже другое смещение

Денис Фомин-Fomin Автор вопроса
Денис Фомин-Fomin Автор вопроса
Aiwan \ (•◡•) / _bot
ставь секции как хочешь

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

Alexander Morozov
Интерпретаторы же работают, значит можно.

Интерпретатор работает не копируя по команде в память))

Денис Фомин-Fomin Автор вопроса
Entusiast
Как ты представляешь себе "копирование команды"? К...

скажем сделать так в '.data' '.data' content01 db 'add eax, ebx',0 это запишется в ascii в дате, потом в коде пишем: '.code' mov esi, content01 mov edi, .code.addr copy: lodsb sub al, 30 stosb or al,al jne copy jmp .code.addr ... .code.addr ;исполняется jmp copy ... чe то такое грубо говоря

Денис Фомин Fomin
скажем сделать так в '.data' '.data' content01 db ...

а мож в data сращу записать mov... тогда нужные байты уже будут там лежать

Денис Фомин-Fomin Автор вопроса
Aiwan \ (•◡•) / _bot
а мож в data сращу записать mov... тогда нужные б...

ну типа это уже минимальное шифрование, не каждый же догадается что код в ascii записан :)

Денис Фомин-Fomin Автор вопроса
Aiwan \ (•◡•) / _bot
в отладке посмотреть и там булет твоя строка

ну это да ну надо что то похитрее придумать , просто сам факт можно так или нет?

https://vx-underground.org/papers.html -> Self-modifying Code

Денис Фомин-Fomin Автор вопроса
Rusty Shackleford
https://vx-underground.org/papers.html -> Self-mod...

спасиб, :) прикольно там текстом картинка нарисована кстати

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

Денис Фомин-Fomin Автор вопроса
Saenro
Что под DOS, что без DOS, что под Windows, или ещё...

Благодарю, вы как всегда на позитиве! :)

Денис Фомин Fomin
скажем сделать так в '.data' '.data' content01 db ...

И ты собираешься разбивать миллион строк кода на contentX? И столько же миллион раз расшифровывать?

Денис Фомин-Fomin Автор вопроса
Entusiast
И ты собираешься разбивать миллион строк кода на c...

ну как один из вариантов, для небольшой программы!

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта