Сейчас на форуме: asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Программа с двойной обфускацией
Посл.ответ Сообщение

Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 апреля 2012 18:14 · Поправил: AlexandrK
· Личное сообщение · #1

Собственно сам пациент --> Link <-- (10,7 МБ).
На Archy.exe и EvilManager.dll накинуто на каждый по два обфускатора (SmartAssembly и .NET Reactor). После деобфускации dll начинает ругаться на System.NullReferenceException в нескольких методах. Так же пробовал без деобфускации через IDA Pro и hiew вносить нужные изменения в них. Результат тот же System.NullReferenceException ... Strong name вроде бы нету, по крайней мере Public key в CFF Explorer равен 0. Кто что может посоветовать?



Ранг: 4.2 (гость), 1thx
Активность: 0=0
Статус: Участник

Создано: 05 апреля 2012 11:54
· Личное сообщение · #2

Сам, на днях, смотрел "игрушки" автора данной прожки. Весьма интересно. Из-за двойной обфускации, депротекторы ругаются на неизвестную защиту. Единственных выход, на мой взгляд, вручную убирать куски smartassembly, и потом убирать реактора. Но пока не знаю, как это сделать



Ранг: 60.6 (постоянный), 87thx
Активность: 0.060
Статус: Участник

Создано: 05 апреля 2012 12:40
· Личное сообщение · #3

EiDeNaR пишет:
Из-за двойной обфускации, депротекторы ругаются на неизвестную защиту

Какие ругаются то? de4dot и dumbassembly нормально воспринимают



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 апреля 2012 16:00 · Поправил: AlexandrK
· Личное сообщение · #4

EiDeNaR Я снимал обфускацию de4dot. Снимает то он ее вроде нормально и определяет при первой деобфускации, что там SmartAssembly, а при второй .NET Reactor. Вот только получается вышеописанная проблема... Как выше писал, что если даже без снятия обфускации просто внести изменения в файл с помощью hex-редактора, то возникает та же ошибка и в тех же самых методах. Попробовал пройтись dumbassembly и получилось тоже самое.



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 05 апреля 2012 17:22
· Личное сообщение · #5

AlexandrK пишет:
что если даже без снятия обфускации просто внести изменения в файл с помощью hex-редактора


шутки шутите?
оба протектора секут изменения любого бита в своем теле



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 апреля 2012 17:49 · Поправил: AlexandrK
· Личное сообщение · #6

sendersu пишет:
оба протектора секут изменения любого бита в своем теле

Об этом я не подумал. Хотя, почему то, при внесении изменений без снятия обфускации в Archy.exe ошибок не возникает. Ошибки начинаются только в dll.



Ранг: 12.1 (новичок)
Активность: 0.010
Статус: Участник

Создано: 09 апреля 2012 13:15
· Личное сообщение · #7

AlexandrK

Возьми отладчик (DILE) для .NET и посмотри, в каком месте падает и почему. Может осталось что от протекторов.



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 апреля 2012 15:44
· Личное сообщение · #8

DILE начинает ругаться на прогу и выводит следующую ошибку:
Code:
  1. Exception occurred while loading the assembly: System.Runtime.InteropServices.COMException (0x8013134B): Протокол отладчика несовместим с отлаживаемой программой. (Исключение из HRESULT: 0x8013134B)
  2.    в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
  3.    в Dile.Debug.Debugger.CreateProcessA(String applicationName, String arguments, String currentDirectory)
  4.    в Dile.UI.MainForm.RunDebuggee()

как быть в этом случае?
В принципе диагностика в самой программе есть и выводит она следующее:
Code:
  1. Версия Windows: Microsoft Windows NT 6.1.7601 Service Pack 1
  2. Разрядность: 32-bit
  3. Версия Framework: 4.0.30319.261
  4. Тип ошибки: System.NullReferenceException
  5.  
  6. Диагностическое сообщение: Ссылка на объект не указывает на экземпляр объекта.
  7. Источник: EvilManager
  8. Стек:   в ns34.Class124.smethod_0()
  9.    в EvilManager.Classes.ProcessManager.get_WoWs()
  10.    в ns6.Form10.method_1()
  11.    в ns6.Form10.method_0(Object sender, EventArgs e)
  12.    в System.Windows.Forms.Form.OnLoad(EventArgs e)
  13.    в System.Windows.Forms.Form.OnCreateControl()
  14.    в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
  15.    в System.Windows.Forms.Control.CreateControl()
  16.    в System.Windows.Forms.Control.WmShowWindow(Message& m)
  17.    в System.Windows.Forms.Control.WndProc(Message& m)
  18.    в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
  19.    в System.Windows.Forms.Form.WmShowWindow(Message& m)
  20.    в System.Windows.Forms.Form.WndProc(Message& m)
  21.    в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
  22.    в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
  23.    в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Но как с этим бороться мне непонятно



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 09 апреля 2012 16:38
· Личное сообщение · #9

AlexandrK
если есть возможность - соберите проект с исходников, добейтесь компиляции без ошибок и дебажьте...



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 05 мая 2012 17:06
· Личное сообщение · #10

Вроде разодрался с проблемой. Программа падает потому, что вызывается метод из другой dll (wow.dll) написанной на C++, а правильное название этого метода в тексте программы изменил деобфускатор. Можно каким либо способом посмотреть какие методы предоставляет wow.dll ?



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 05 мая 2012 22:01
· Личное сообщение · #11

AlexandrK
в САЕ например можно несколько файлов одновременно указать для деобфускатора
для дедота - скопировать рядом с главной сборкой
а так - будете гадать на кофейной гуще до утра



Ранг: 5.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 июля 2012 16:00
· Личное сообщение · #12

Появилось немного времени и я решил поднять свою старую тему, так как все таки хотелось бы разобраться как поступать в данном случае...
sendersu написал, что:
Code:
  1.  САЕ например можно несколько файлов одновременно указать для деобфускатора
  2. для дедота - скопировать рядом с главной сборкой
  3. а так - будете гадать на кофейной гуще до утра

Но весь прикол состоит в том, что эта dll написана на C++ и de4dot не вытаскивает правильное название метода из нее. Как быть в таком случае?



Ранг: 137.9 (ветеран), 45thx
Активность: 0.080
Статус: Участник

Создано: 26 июля 2012 16:15
· Личное сообщение · #13

AlexandrK
Посмотреть с помощью апи шпиона например http://jacquelin.potier.free.fr/winapioverride32/


 eXeL@B —› Вопросы новичков —› Программа с двойной обфускацией
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати