Информационная безопасность


Процесс деобфускации - часть 2


Ниже представлен простой образец классификации методов процесса деобфускации:

  • нахождение и оценка непрозрачных конструкций (предикатов), статический анализ, которых очень сложен.
  • сопоставление с образцом. Осуществляется различными способами, наиболее распространенны два из них. Первый, это когда берется несколько одних и тех же программ, прошедших процесс обфускации (так как процесс обфускации в большинстве случаев уникален, то их код также будет разный, хотя они и будут выполнять идентичные действия), и производиться сравнение фрагментов их кода, для выявления вставленного в процессе осуществления обфускации лишнего кода, который в последствии просто убирается. Второй способ сопоставления с образцом, осуществляется путем поиска в коде программы наиболее распространенных конструкций, применяемых в процессе обфускации. Такие конструкции могут, например, храниться и обновляться в соответствующей базе данных, или быть получены путем изучения работы самого обфускатора.
  • выделение в программе фрагментов кода, которые никоим образом не связанны с основными задачами, которые должна выполнять программа, то есть обнаружение ненужных (лишних) участков кода.
  • статистический анализ, заключается в динамическом анализе кода программы. Например, нахождение непрозрачных предикат может осуществляться путем выделения и дальнейшего изучения в анализируемом коде программы тех предикат, которые в процессе его выполнения возвращают всегда одно и тоже значение. Статистический анализ также может быть использован для оценки корректности осуществленного процесса деобфускации, для этого параллельно запускается программа "А" и программа, полученная в результате деобфускации "А`", им передаются эквивалентные входные данные, и происходит сравнение выходных. Если выходные данные одинаковы, то можно предположить, что процесс деобфускации был осуществлен правильно.
  • анализ потока данных, основывается на изучении того, как в процессе работы программы изменяются в ней данные (переменные, массивы).




- Начало -  - Назад -  - Вперед -



Книжный магазин