Ранг: 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. Кто что может посоветовать?
Сам, на днях, смотрел "игрушки" автора данной прожки. Весьма интересно. Из-за двойной обфускации, депротекторы ругаются на неизвестную защиту. Единственных выход, на мой взгляд, вручную убирать куски smartassembly, и потом убирать реактора. Но пока не знаю, как это сделать
Ранг: 5.1 (гость) Активность: 0=0 Статус: Участник
Создано: 05 апреля 2012 16:00 · Поправил: AlexandrK · Личное сообщение · #4
EiDeNaR Я снимал обфускацию de4dot. Снимает то он ее вроде нормально и определяет при первой деобфускации, что там SmartAssembly, а при второй .NET Reactor. Вот только получается вышеописанная проблема... Как выше писал, что если даже без снятия обфускации просто внести изменения в файл с помощью hex-редактора, то возникает та же ошибка и в тех же самых методах. Попробовал пройтись dumbassembly и получилось тоже самое.
Ранг: 5.1 (гость) Активность: 0=0 Статус: Участник
Создано: 05 апреля 2012 17:49 · Поправил: AlexandrK · Личное сообщение · #6
sendersu пишет: оба протектора секут изменения любого бита в своем теле Об этом я не подумал. Хотя, почему то, при внесении изменений без снятия обфускации в Archy.exe ошибок не возникает. Ошибки начинаются только в dll.
DILE начинает ругаться на прогу и выводит следующую ошибку:
Code:
Exception occurred while loading the assembly: System.Runtime.InteropServices.COMException (0x8013134B): Протокол отладчика несовместим с отлаживаемой программой.(Исключение из HRESULT: 0x8013134B)
в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
в Dile.Debug.Debugger.CreateProcessA(String applicationName, String arguments, String currentDirectory)
в Dile.UI.MainForm.RunDebuggee()
как быть в этом случае? В принципе диагностика в самой программе есть и выводит она следующее:
Code:
Версия Windows: Microsoft Windows NT 6.1.7601 Service Pack 1
Разрядность:32-bit
Версия Framework:4.0.30319.261
Тип ошибки: System.NullReferenceException
Диагностическое сообщение: Ссылка на объект не указывает на экземпляр объекта.
Источник: EvilManager
Стек: в ns34.Class124.smethod_0()
в EvilManager.Classes.ProcessManager.get_WoWs()
в ns6.Form10.method_1()
в ns6.Form10.method_0(Object sender, EventArgs e)
в System.Windows.Forms.Form.OnLoad(EventArgs e)
в System.Windows.Forms.Form.OnCreateControl()
в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
в System.Windows.Forms.Control.CreateControl()
в System.Windows.Forms.Control.WmShowWindow(Message& m)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ScrollableControl.WndProc(Message& m)
в System.Windows.Forms.Form.WmShowWindow(Message& m)
в System.Windows.Forms.Form.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Вроде разодрался с проблемой. Программа падает потому, что вызывается метод из другой dll (wow.dll) написанной на C++, а правильное название этого метода в тексте программы изменил деобфускатор. Можно каким либо способом посмотреть какие методы предоставляет wow.dll ?
AlexandrK в САЕ например можно несколько файлов одновременно указать для деобфускатора для дедота - скопировать рядом с главной сборкой а так - будете гадать на кофейной гуще до утра
Появилось немного времени и я решил поднять свою старую тему, так как все таки хотелось бы разобраться как поступать в данном случае... sendersu написал, что:
Code:
САЕ например можно несколько файлов одновременно указать для деобфускатора
для дедота - скопировать рядом с главной сборкой
а так - будете гадать на кофейной гуще до утра
Но весь прикол состоит в том, что эта dll написана на C++ и de4dot не вытаскивает правильное название метода из нее. Как быть в таком случае?