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

Друзья, решил поиграться немного с сырыми указателями на Линуксе. Суть: Есть очень

простая программа из crackmes, которая выводит в консоль "введите пароль: " и ожидает ввода пароля соответственно. Если ввёл правильно - выводит сообщение "молодец" и закрывается, если неправильно - то выводит сообщение "неверно" и закрывается.

Задача:
Изменить поведение программы через изменяемые сырые указатели (`*mut u8`), чтобы программа без ввода пароля, во время рантайма, сразу выдала "молодец". При этом, важно, не дизассемблируя её, то есть прямая работа с памятью процесса.

Проделанная работа (код - тык):
Определение PID процесса, диапазон и сдвиг адресов, что использует процесс. Для пробы, дёргая за ptrace, пытался изменить:
1) значение хотя бы одного адреса памяти;
2) значение 4-х/8-ми/16-и адресов памяти разом;
3) разом все значения адреса памяти;
Однако, понял, что все адреса памяти - нули. Куда посоветуете копать дальше? Нашел что-то про ASLR, но не очень понимаю что дальше.

p.s. я не пытаюсь "взломать" программу в прямом понимании - интересна конкретно работа и изменение памяти процесса во время рантайма с последующим in-place переопределением поведения, ну и также работа с сырыми указателями и unsafe Rust.

p.p.s.: необязательно помогать кодом) мне скорее требуется понять, куда дальше двигаться, чтобы я понял, почему вся доступная память процесса - это нули, и куда дальше двигаться, чтобы таки изменить память процесса на какое-нибудь любое значение.

7 ответов

13 просмотров

Сам крякми дай, чтобы проще было локально потыкать

А ты проверял, что сисколлы работают?

К|/|pи/\/\-6е3yглbIи Автор вопроса
Пух
Сам крякми дай, чтобы проще было локально потыкать

Минутку, сейчас найду, а то распаковал, а ссыль потерял.

Mikail Bagishov
А ты проверял, что сисколлы работают?

Просто тебя с легкостью могли послать нафиг еще на этапе attach, а никакой обработки ошибок я в твоем коде не вижу

К|/|pи/\/\-6е3yглbIи Автор вопроса
Mikail Bagishov
А ты проверял, что сисколлы работают?

Точно скажу, что нет, не проверял. Как я могу это проверить или чтобы не доставать, где можно узнать как проверить?)

К|/|pи/\/\ 6е3yглbIи
Точно скажу, что нет, не проверял. Как я могу это ...

Из man 2 ptrace: > RETURN VALUE On success, the PTRACE_PEEK* requests return the requested data (but see NOTES), the PTRACE_SECCOMP_GET_FILTER request returns the number of instructions in the BPF program, and other requests return zero. On error, all requests return -1, and errno is set appropriately. Since the value returned by a successful PTRACE_PEEK* request may be -1, the caller must clear errno before the call, and then check it af‐ terward to determine whether or not an error occurred.

К|/|pи/\/\-6е3yглbIи Автор вопроса

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

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

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
{!! $modx->runSnippet( 'multiTV',[ 'tvName'=>'slider-main1', 'docid'=>'[*id*]', 'tplConfig'=>'', 'display'=>'4', 'offset'=>'0', 'rows'=>'all', 'ra...
Роман С
4
PopOs or Linux Mint for a noob starter? Also do you have any articles on how to safely dual boot Windows 10 alongside it? I've heard there are a bunch problems that can occur...
Senator
14
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Из рассылки The Lazarus team is glad to announce the release of Lazarus 3.4. This is a bugfix release and was built with FPC 3.2.2. Here is the list of changes for Lazarus...
Ed Doc
4
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Карта сайта