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

 eXeL@B —› Основной форум —› Помогите разобраться первый раз копаюсь в .NET
<< . 1 . 2 .
Посл.ответ Сообщение

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

Создано: 17 ноября 2006 16:42 · Поправил: cmp
· Личное сообщение · #1

Помогите разобраться первый раз копаюсь в .NET. В принципе в IDA нашол переход, но вот как его пропатчить что-то не доходит.
Дизассамблировал, а дальше что-то я ничего не пойму.
Програмка маленькая 44кб.

Что-то не приатачиваеться зараза, кину на рапиду.
hxxp://rapidshare.com/files/3795670/1.exe.html



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 19 ноября 2006 12:34
· Личное сообщение · #2

Загружаеш в рефлектор, идешь на ентрипойнт, а дальше тыкаеш по интересным ссылкам(по тем которые тебе кажутся интересными, например гденить рядом с "вы ввели не верный регистрационный код") и все.



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

Создано: 19 ноября 2006 13:33
· Личное сообщение · #3

jfx может быть я туплю, но если я открываю его рефлектором NET_Reflector_v4.2.48.0, file->Open->CKPackager.exe , то в рефлекторе никаких изменений не наблюдаю, из чего делаю ввывод что он у меня CKPackager.exe не открывает



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 19 ноября 2006 21:00
· Личное сообщение · #4

Попробуй иначе - перетащи свой файл из окна эксплрера в окно рефлектора. Обычно после этого в левом окне (там где treelist) появляктся самым последним пунктом имя твоей сборки. Один нюанс, если сборка уже загружена а ты пытаешся загрузить ее снрва, то ничего не произойдет. Так что ищи в дереве имя этой сборки.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 20 ноября 2006 00:22
· Личное сообщение · #5

cmp, все он открывает, ты в списке посмотри свой файл




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 20 ноября 2006 22:04
· Личное сообщение · #6

jfx пишет:
Попробуй иначе - перетащи свой файл из окна эксплрера в окно рефлектора.


лол

-----
have a nice day




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 20 ноября 2006 22:24
· Личное сообщение · #7

cmp пишет:
из чего делаю ввывод что он у меня CKPackager.exe не открывает

Рефлектор очень странно устроен. Все что в нем открыл, он запоминает в списке. Там практически сразу появляются системные DLL и с непривычки найти что-то трудно.
========================
У меня другой вопрос. Первый раз мне показалось, что Рефлектор позволяет стринги по их значению искать. Но вчера второй раз запустил и убедился, что сначала приходится искать стринг в ресурсах
(у меня многие XXX.dll имеют XXX.resource.dll в папке соответствующего языка) и только потом его можно по имени найти. Хорошо еще что имена не обфусканы, но все равно неудобно.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 20 ноября 2006 22:32
· Личное сообщение · #8

jfx По поводу проги. Дистр на 100 Мб, т.ч. забросить-то могу, но ....
Я вчера докопал до DLL, которая с аппаратным ключом работает. Ее прицепляю и вопросик : по LastError определяется, что с ключом - есть, истек и т.п. Остальные "поля" означают разные вещи, которые можно по тексту расшифровать, в т.ч. там время истечения. Помоги эту DLL подменить - будем вместе "зарабатывать".

7080_20.11.2006_CRACKLAB.rU.tgz - ManagementwordLib.dll



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 21 ноября 2006 04:35 · Поправил: tundra37
· Личное сообщение · #9

Ну я немного стал понимать Поставил SDK 1.1 Сотворил hello на C++, посмотрел его в Рефлекторе и еле нашел main() ( Go Entry Point не стал использовать). Далее попытался свою dll превратить в текст и откомпилировать. Тут понял, что С++ после Рефлектора получается "поганый" - ругают меня на ровном месте. Попробовал 9Rays с тем же успехом и решил "освоить С#". Мне повезло, т.к. я не стал загонять весь текст, а загнал только сами функции. О чудо - получил DLL Правда с ней получается SystemError.
Вопрос теперь простой : как мне все загнать в C# и чтоб ошибок не было. Почему-то описание класса не хочет жрать. Сосвечивая Рефлектор и 9Rays видно, что надо править, но "суть ускользает".



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 21 ноября 2006 06:10
· Личное сообщение · #10

Для более-мение нормально декомпиляции в MC++ нужно использовать дополнительный плугин к рефлектору, родной что-то странное делает с MC++
dll-ку посмотрю...



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 21 ноября 2006 06:19
· Личное сообщение · #11

Похоже что эта dll просто обертка над нативной dll-кой, поэтому что-то копать в ней большого смысла нет. Выкладый весь пакет.



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 ноября 2006 01:53 · Поправил: tundra37
· Личное сообщение · #12

jfx пишет:
Похоже что эта dll просто обертка над нативной dll-кой, поэтому что-то копать в ней большого смысла нет

Почему смысла нет ?! Именно эта DLL(или другая, в которой тот же класс и те же функции) выдает в прогу LastError и различные данные из ключа. Крипто нет, значит подменив ее ответы, получим эмулятор ключа. Кстати я "прорвался" через дуристику Reflector-a. Там три функции выдают ArrayList и рефлектор это сделал через this[int index] и добавил к переменным/функциям словечки Count и Sub. Видимо но выдает синтаксис 2-го ДотНета, а у меня 1.1 Короче, я пока поставил от балды ArrayList(точнее это видно в других пунктах рефлектора) и получил DLL с деревом подобным исследуемой DLL. Длина правда поменьше, но теперь сосвечивая рефлектор и 9Rays и почитывая инфу про ДотНЕТ можно получить сырцы рабочей DLL. Кстати, если не трудно глянь еще одну DLL. Там правда тоже нет реального обращения к ключу , но может я что-то не понял ?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 ноября 2006 01:57
· Личное сообщение · #13

Даю DLL. Вчера искал плагины в Интернете к рефлектору , но почти ничего не нашел. Дай пожалуйста ссылки в личку.

a201_22.11.2006_CRACKLAB.rU.tgz - CommonData.zip



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 ноября 2006 03:27 · Поправил: tundra37
· Личное сообщение · #14

jfx Порылся на форуме, сижу на ру-борде, а на соседнем компе пославил .NET 2.0 и наслаждаюсь сексом с DILE 0.2.3. С нуля проект создать не удалось - нет запуска. Приаттачился к проге, сохранил проект. Научился таки запускать, торчу непонятно где, пока 2 thread-a, а должно быть 4. Нехилая задачка - возможно защита от отладчика.
При создании проекта пришлось отказаться от загрузки mscoree... - вылетает. Наверное это из-за .NET 1.1



Ранг: 56.4 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 22 ноября 2006 04:02
· Личное сообщение · #15

Если я правильно понял ты хочеш заменить ту обертку на эмулятор, чтобы она не обращалась к нативной библиотеке а сама выдавала результат? Я правильно понял?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 ноября 2006 06:01
· Личное сообщение · #16

jfx пишет:
Я правильно понял?

Именно так и хотел. Но в DILE нашел, где выдается сообщение про отсутствие ключа. Осталось научится патчить - думаю смогу. Т.к. вроде запросы к функциям ключа немногочисленны и никаких сложных телодвижений нет, то должно сломаться. DLL оказалась другая, та с которой начинал.

DigiLab.UI.DigiProduct::COMWaitMsgLoop()

private void COMWaitMsgLoop()
{
try
{
uint num1 = ManagementwordCal.UserHardID;
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
this.m_bError = ManagementwordCal.LastError != 0;
}
catch
{
}
this.m_AutoEvent.Set();
if (this.m_bError)
{
return;
}
MSG msg1 = new MSG();
IntPtr[] ptrArray1 = new IntPtr[] { this.m_StopMutex.Handle };
Label_0059:
if (User32.PeekMessage(ref msg1, 0, 0, 0, 1))
{
if (msg1.message == 0x12)
{
return;
}
User32.DispatchMessage(ref msg1);
if (User32.MsgWaitForMultipleObjects((uint) ptrArray1.Length, ptrArray1, false, 100, 0x1ff) == 0)
{
return;
}
goto Label_0059;
}
if (User32.MsgWaitForMultipleObjects((uint) ptrArray1.Length, ptrArray1, false, 100, 0x1ff) == 0)
{
return;
}
goto Label_0059;
}


92d8_22.11.2006_CRACKLAB.rU.tgz - DigiManager.rar



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 22 ноября 2006 09:01
· Личное сообщение · #17

jfx
Скорее всего все не так просто. Потыкав в отладчике на F10 я вышел из чего-то похожего на Application.Run и вот после него было сообщение про ключ USB. Thread-a оказалось только 2, т.ч. не страшно. Главное, я попробовал делать ildasm и ilasm и все работает. Победить видимо не удалось, т.к. просто циклит, но сообщение не выдает - это уже радует. Завтра буду проверять DLL на предмет нативных, но оказалось что USBports написан на .NET(хотя тоже може обертка). Короче, я просто в свое время и не собирался заниматься ей, поэтому многое упустил Типичная ошибка новичков, а вдруг разу сделаю



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 ноября 2006 03:54
· Личное сообщение · #18

Если, вдруг кому интересно, я нашел метод, в которой защита - DigiAbout ( DigiManager.dll). Т.е. в предыдушем посте место, в котором отладчик останавливался При попытке пропатчить именно это место - получил System error!................................... Т.к. в других местах эту DLL можно патчить безболезненно - это защита. Защита не на ДотНете сделанная или не только на ДотНете. Раскопаю - доложу. Вроде что-то подобное не очень давно на форуме пробегало.


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


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