Сейчас на форуме: Slinger (+6 невидимых) |
![]() |
eXeL@B —› Основной форум —› Помогите разобраться первый раз копаюсь в .NET |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 17 ноября 2006 16:42 · Поправил: cmp · Личное сообщение · #1 Помогите разобраться первый раз копаюсь в .NET. В принципе в IDA нашол переход, но вот как его пропатчить что-то не доходит. Дизассамблировал, а дальше что-то я ничего не пойму. Програмка маленькая 44кб. Что-то не приатачиваеться зараза, кину на рапиду. hxxp://rapidshare.com/files/3795670/1.exe.html ![]() |
|
Создано: 19 ноября 2006 12:34 · Личное сообщение · #2 |
|
Создано: 19 ноября 2006 13:33 · Личное сообщение · #3 |
|
Создано: 19 ноября 2006 21:00 · Личное сообщение · #4 Попробуй иначе - перетащи свой файл из окна эксплрера в окно рефлектора. Обычно после этого в левом окне (там где treelist) появляктся самым последним пунктом имя твоей сборки. Один нюанс, если сборка уже загружена а ты пытаешся загрузить ее снрва, то ничего не произойдет. Так что ищи в дереве имя этой сборки. ![]() |
|
Создано: 20 ноября 2006 00:22 · Личное сообщение · #5 |
|
Создано: 20 ноября 2006 22:04 · Личное сообщение · #6 |
|
Создано: 20 ноября 2006 22:24 · Личное сообщение · #7 cmp пишет: из чего делаю ввывод что он у меня CKPackager.exe не открывает Рефлектор очень странно устроен. Все что в нем открыл, он запоминает в списке. Там практически сразу появляются системные DLL и с непривычки найти что-то трудно. ======================== У меня другой вопрос. Первый раз мне показалось, что Рефлектор позволяет стринги по их значению искать. Но вчера второй раз запустил и убедился, что сначала приходится искать стринг в ресурсах (у меня многие XXX.dll имеют XXX.resource.dll в папке соответствующего языка) и только потом его можно по имени найти. Хорошо еще что имена не обфусканы, но все равно неудобно. ![]() |
|
Создано: 20 ноября 2006 22:32 · Личное сообщение · #8 jfx По поводу проги. Дистр на 100 Мб, т.ч. забросить-то могу, но .... Я вчера докопал до DLL, которая с аппаратным ключом работает. Ее прицепляю и вопросик : по LastError определяется, что с ключом - есть, истек и т.п. Остальные "поля" означают разные вещи, которые можно по тексту расшифровать, в т.ч. там время истечения. Помоги эту DLL подменить - будем вместе "зарабатывать". ![]() ![]() |
|
Создано: 21 ноября 2006 04:35 · Поправил: tundra37 · Личное сообщение · #9 Ну я немного стал понимать ![]() ![]() Вопрос теперь простой : как мне все загнать в C# и чтоб ошибок не было. Почему-то описание класса не хочет жрать. Сосвечивая Рефлектор и 9Rays видно, что надо править, но "суть ускользает". ![]() |
|
Создано: 21 ноября 2006 06:10 · Личное сообщение · #10 |
|
Создано: 21 ноября 2006 06:19 · Личное сообщение · #11 |
|
Создано: 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. Там правда тоже нет реального обращения к ключу , но может я что-то не понял ? ![]() |
|
Создано: 22 ноября 2006 01:57 · Личное сообщение · #13 Даю DLL. Вчера искал плагины в Интернете к рефлектору , но почти ничего не нашел. Дай пожалуйста ссылки в личку. ![]() ![]() |
|
Создано: 22 ноября 2006 03:27 · Поправил: tundra37 · Личное сообщение · #14 jfx Порылся на форуме, сижу на ру-борде, а на соседнем компе пославил .NET 2.0 и наслаждаюсь сексом с DILE 0.2.3. С нуля проект создать не удалось - нет запуска. Приаттачился к проге, сохранил проект. Научился таки запускать, торчу непонятно где, пока 2 thread-a, а должно быть 4. Нехилая задачка - возможно защита от отладчика. При создании проекта пришлось отказаться от загрузки mscoree... - вылетает. Наверное это из-за .NET 1.1 ![]() |
|
Создано: 22 ноября 2006 04:02 · Личное сообщение · #15 |
|
Создано: 22 ноября 2006 06:01 · Личное сообщение · #16 jfx пишет: Я правильно понял? Именно так и хотел. Но в DILE нашел, где выдается сообщение про отсутствие ключа. Осталось научится патчить - думаю смогу. Т.к. вроде запросы к функциям ключа немногочисленны и никаких сложных телодвижений нет, то должно сломаться. DLL оказалась другая, та с которой начинал. DigiLab.UI.DigiProduct::COMWaitMsgLoop() private void COMWaitMsgLoop()
![]() ![]() |
|
Создано: 22 ноября 2006 09:01 · Личное сообщение · #17 jfx Скорее всего все не так просто. Потыкав в отладчике на F10 я вышел из чего-то похожего на Application.Run и вот после него было сообщение про ключ USB. Thread-a оказалось только 2, т.ч. не страшно. Главное, я попробовал делать ildasm и ilasm и все работает. Победить видимо не удалось, т.к. просто циклит, но сообщение не выдает - это уже радует. Завтра буду проверять DLL на предмет нативных, но оказалось что USBports написан на .NET(хотя тоже може обертка). Короче, я просто в свое время и не собирался заниматься ей, поэтому многое упустил ![]() ![]() ![]() |
|
Создано: 23 ноября 2006 03:54 · Личное сообщение · #18 Если, вдруг кому интересно, я нашел метод, в которой защита - DigiAbout ( DigiManager.dll). Т.е. в предыдушем посте место, в котором отладчик останавливался ![]() ![]() |
<< . 1 . 2 . |
![]() |
eXeL@B —› Основной форум —› Помогите разобраться первый раз копаюсь в .NET |