|
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 55
|
|
Шифровка числа и борьба с IDA28.11.2017, 16:35. Показов 4149. Ответов 13
Метки нет (Все метки)
У меня уже есть алгоритм для шифровки строк/чисел.
Чтобы этот алгоритм работал, ему нужно число x, это число x я и хочу зашифровать. Подскажите как это можно сделать? Я пока придумал лишь это: создать МНОГО функций с перенаправлениями и математическими операциями, которые в итоге дают это число x, с надежой что IDA парень устанет от этих перенаправлений и бросит, но зная парня, он не бросит =) А читерская F5 кнопка в IDA показывает верный псевдокод, который я не знаю как можно обмануть. Т.е. у меня 2 вопроса. 1. Как зашифровать одно число 2. Как обмануть IDA, чтобы он выдавал псевдокод (F5) с логическими ошибками, т.е. выдавал неверные данные Добавлено через 7 минут 3. Можно ли как-то хитро вызвать функцию, чтобы IDA неверно определила адрес и перекинула в какой-то левый участок кода?
0
|
|
| 28.11.2017, 16:35 | |
|
Ответы с готовыми решениями:
13
Ida pro Декомпиляция в IDA |
| 28.11.2017, 16:44 | |
|
Не по теме: Это тема для начинающих?
0
|
|
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|
| 28.11.2017, 16:53 | |
|
Могу точно сказать, что Hex-Rays Иды плохо работает с volatile переменными.
Т.е. Если у вас такая объявлена и если у вас подряд идут несколько записей или обращений к одной переменной, то Псевдокод покажет только последнее. Это вам 1 наводка. Второе - Ида заточена под стандартные сишные вызовы. Если вы напишите и скомпилируете код каким-нибудь Делфи, я думаю, это доставит проблем разбирающему. Лучшая защита - это хранение ключа на отдельном сервере, на который посылаются данные для расшифровки, а в ответ принимаются уже расшифрованный результат Либо пишите на чистом ассемблере. ) Потом есть еще такая тема, как перекрытие секторов. Т.е. в PE-секции задаете адреса секторов данных и кода так, чтобы они наползали друг на друга. Тогда в секции данных можно разместить самомодифицирующийся код. ) Такой код уж Идовский парень точно не осилит. Добавлено через 8 минут Еще можно попробовать зациклить какой-либо вызов таблицы релокации на самого себя. Если в Иде нет защиты от этого - она просто повиснет на этапе анализа кода.
2
|
|
|
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 55
|
||
| 28.11.2017, 16:55 [ТС] | ||
|
Спасибо за советы, попробую [ то, что я смог понять =) ]
0
|
||
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|
| 28.11.2017, 16:59 | |
|
Так вы их по vpn-у передавайте. )
Добавлено через 1 минуту Вообще в кибербезопасности нет понятия абсолютной защиты. Есть понятие такой защиты, на взлом которой требовалось бы безмерное количество времени, что делало бы взлом неэффективным. Типа взломали, а данные неактуальны уже лет как 5
1
|
|
|
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 55
|
|||||||||||
| 28.11.2017, 17:04 [ТС] | |||||||||||
|
Что-то с volatile не получается =\
0
|
|||||||||||
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|||||||||||
| 28.11.2017, 17:11 | |||||||||||
|
Ну, она объединяет.
Попробуйте использовать какой-то системный регистр, который бы при обращении как-то модифицировал значение. Добавлено через 1 минуту Известным образом модифицировал. ) Добавлено через 2 минуты Т.е. если у вас идет чтение volatile переменной
Поменять ее сами незаметно для Иды вы не сможете. Программно. А вот заюзать какой-то системный регистр... Да хоть использовать регистры сопроцессора
0
|
|||||||||||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 28.11.2017, 17:15 | ||
|
Добавлено через 3 минуты Можно придумать какую-нибудь простенькую модель вычислительной машины и реализовать ее, а внутри уже в виде своего байт-кода (под эту "машину") сам алгоритм шифрования. Понять все это дела помощью дизассемблера будет не просто.
0
|
||
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|
| 28.11.2017, 17:17 | |
|
Ида ничего не занет о том, волатальные они или нет. И нигде в ее настройках для переменной нельзя этого указать.
Как раз таки Ида всегда оптимизирует
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 28.11.2017, 17:21 | ||
|
Добавлено через 2 минуты В любом случае все эти попытки забагать алгоритм генерации псевдокода спасут только от пионеров.
0
|
||
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|||
| 28.11.2017, 17:25 | |||
|
Шифровка числа и борьба с IDA но вот предложенный вами вариант промежуточного байт-кода или мой вариант с самомодифицирующимся кодом может доставить немало хлопот. К тому же в задаче от ТС стоит обмануть Hex-Rays, а не матерого cool-хацкера
0
|
|||
|
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 55
|
||
| 07.12.2017, 23:36 [ТС] | ||
|
try catch можно использовать.
Если писать код в catch, то в f5 он не виден, нужно вручную ковырять код. Есть еще варианты?
0
|
||
|
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
|
|
| 08.12.2017, 11:00 | |
|
Первое, что приходит на ум - использование напрямую команд MMX, SSE.
Вообще можно поискать аппаратное обеспечение, доступное рядовой программе и попытаться заюзать его. Потом можно еще распараллелить код каким-нибудь хитрым образом. Использовать в нем какую-нибудь не стандартную синхронизацию. Да даже просто распарралеленый код анализировать уже намного сложнее. Можно через какой-нибудь сокет отправлять данные самому себе и активно юзать их. Вряд ли IDA догадается сверять адреса клиента и сервера. + еще можно считывать в другом порядке, либо в другую структуру memset-ом. Так, чтобы размеры переменных были другими. Но общий размер сохранялся.
0
|
|
|
0 / 0 / 0
Регистрация: 28.11.2017
Сообщений: 55
|
|
| 10.12.2017, 00:06 [ТС] | |
|
500 rub тому, кто первым даст c++ код, который позволит скрыть F5 псевдокод в IDA, чтобы парень был вынужден ковырять код в окнах IDA View-A и прочих, а не копировал всё из псевдокода. Я нашел лишь try и catch, если писать код внутри catch, то его псевдокод не выдает, но к сожалению он мне не подходит, т.к. на линуксе на одной версии игрового сервера с try catch происходит магия и они не работают как надо. Можно в ЛС.
Добавлено через 16 часов 56 минут Никто? Жаль.
0
|
|
| 10.12.2017, 00:06 | |
|
Помогаю со студенческими работами здесь
14
Поиск в Ida Pro Поиск операнд в IDA Поиск вызовов в IDA IDA PRO and atmega2561 IDA 6.1 Ошибки с псевдокодом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|