Реверсинг программы с парольной защитой на С++. Часть 4

22 мар 2019

Рассмотрим пример исследования программного кода для анализа вводимого пароля и вывода сообщения о регистрации. Для начала рассмотрим очень простую консольную программу (программа 2.8). Программа 2.8. #include <iostream> #include <stdio.h> #include <process.h> #include <conio.h> using namespace std; void main() { cout << " Enter pssword " << endl; int pass; cin >> pass; if (pass==999) //пароль 999 { cout << " OKEY!!! ;) " << endl; getch(); } else { cout << " WRONG!!! "...
Читать далее
Лайков 0 Комментариев0 Просмотров3.636

Реверсинг программы с использованием строковых команд. Часть 3

22 мар 2019

Для сравнения вводимого пароля с эталонным значением чаще всего применяют строковые команды. Достоинством применения таких команд, в данном случае, является сокращение кода. Учитывать быстродействие при выполнении сравнения и медленном клавиатурном вводе как-то не уместно. В программе 2.5 применена процедура Pas1 proc, которая влияет только на оформление программы. Но если процедур будет достаточно много, то это сильно повлияет на поиск пароля. А если при этом предположить, что и сравнение...
Читать далее
Лайков 0 Комментариев0 Просмотров2.445

Реверсинг программы с использованием базовых команд. Часть 2

22 мар 2019

Применение базовых команд не дает никакого преимущества перед использованием API-функции lstrcmp. В этом случае достигается не только разнообразие вариантов программ с запросом пароля, но и детализация внутреннего алгоритма проверки вводимых символов пароля. Особенностью программы можно считать применение функции WriteConsole, которую так же надо было применить в программе 2.1. Эта функция выводит сообщение с просьбой ввести пароль в консольном окне. В связи с тем, что эта программа является...
Читать далее
Лайков 0 Комментариев0 Просмотров2.323

Реверсинг программы с использованием API-функции lstrcmp. Часть 1

22 мар 2019

Рассмотрим один из самых простых вариантов поиска пароля – пароль вводится в виде строки символов и при этом используется API-функция lstrcmp. Вводимый пароль должен быть сравнен с эталонным паролем, который хранится в программе, а по результату сравнения выведены соответствующие сообщения. Проще всего для сравнения строк использовать API-функцию lstrcmp. Для простоты рассмотрения механизма сравнения проанализируем в отладчике x64Dbg программу консольного ввода пароля, потому что при...
Читать далее
Лайков 0 Комментариев0 Просмотров2.362

Путешествие из Kernel32 в HAL

25 фев 2017

Оригинал статьи http://www.debasish.in/2014/02/reversing-tiny-built-in-windows-kernel.html Путешествие из Kernel32 в HAL В этом посте я собираюсь изучить ядро Wiindows путем небольшого реверса встроенного в ядро модуля. Если вы когда-нибудь разрабатывали ядерный драйвер (модуль), это будет очень просто для понимания. Если вы не знакомы с тем, как работают драйвера, то на Codeproject.com есть немного хороших ресурсов, чтобы начать. Но прежде чем мы сможем начать реверсинг основного...
Читать далее
Лайков +9 Комментариев2 Просмотров6.335

Обработка user-mode исключений в Windows

12 июн 2010

Статья посвящена обработке user-mode исключений в Windows.
Читать далее
Лайков +1 Комментариев1 Просмотров6.223

Исследование подсистемы GUI: горячие клавиши в Windows

31 май 2009

Исследование механизма регистрации горячих клавиш в Windows.
Читать далее
Лайков 0 Комментариев0 Просмотров1.620

Правда о KeUserModeCallback()

6 дек 2008

Это даже не статья, а маленькая заметочка. Заметочка на тему избитой всеми функции KeUserModeCallback(). Избитой потому, что многие о ней слышали, многие знают для чего она используется и как примерно работает, но вот рабочего кода, полноценно ее использующего, почти ни кто так и не выдал. Тому есть несколько причин, но обо всем по порядку…
Читать далее
Лайков 0 Комментариев0 Просмотров2.646