Сейчас на форуме: Rio (+10 невидимых) |
eXeL@B —› Основной форум —› Отладка и patch программ написанных на .NET |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 05 декабря 2004 10:50 · Поправил: Модератор · Личное сообщение · #1 Вобщем то имеем некую программу, при анализе которой PeID выплюнул: Microsoft Visual C# / Basic .NET после привлечения известного всем замечательного дизассемблера (ИДА) оно дало почти исходник .... вобщем то все хорошо и не долго я искал то место которое надо пропатчить, но как это сделать ? ИДА выдала вот это в том месте где надо патчить: callvirt class System.String FirePanelXP.main::kc(class System.String username, class System.Object var1, class System.Object var2, class System.Object var3, class System.Object var4) ldloc.0 ldc.i4.0 call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringTy pe::StrCmp(class System.String, class System.String, bool) -а вот тут бы отладить, и узнать ключ ldc.i4.0 bne.un.s loc_7447 - вот это переход надо поменять! ldstr "Thank You" ldc.i4.0 ldnull Вобщем то 2 вопроса: 1) чем можно сию прогу написаную на .НЕТ отладить 2) если отладить низзя, то как можно запатчить ? З. Ы. прога юзает Frameworks 2З.Ы. в месте где стоит тот переход который мне надо пропатчить, в ИДЕ в Hex-view стоит 33 5B, это что за странные соотвествия джампу ? |
|
Создано: 29 августа 2005 15:29 · Личное сообщение · #2 |
|
Создано: 29 августа 2005 17:31 · Поправил: Nimnul · Личное сообщение · #3 Да ты был прав, но если посудить эта функция вобще не нужна, можно пойти другим путем, она вызывается два раза из countdown, если первая проверка проходит, то прога работает, а второй раз и не нужен если срабатывает первый, так что можно удалить саму функцию проверки и вырезать ее из countdown. в аттаче твой реализованный метод Все пропаченные места обозначенны //Crack 893b_traffic.rar ----- have a nice day |
|
Создано: 29 августа 2005 19:54 · Личное сообщение · #4 |
|
Создано: 29 августа 2005 20:30 · Личное сообщение · #5 NIKOLA А что конкретно ты не понял? Вот к стати второй вариант тот о котором я говорил: Мучался часа полтора, хренов компилятор, вот это условие проверяется так: If Me.compdatas(StringType.FromObject(obj2), regact.nst(65536)) Then я от сюда //IL_0116: ldarg.0 //IL_0117: ldloc.3 //IL_0118: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringTy pe::FromObject(object) //IL_011d: ldc.i4 0x10000 //IL_0122: call string networkexperiments.regact::nst(int32) до сюда не вырезал, и тупил полтора часа немог дорубиться че за хня, т.к. отладчик вопил на обработчик исключений вот я и шарился выше думал мож там накосипорил // IL_0127: callvirt instance bool networkexperiments.Form1::compdatas(string, string) // IL_012c: ldc.i4.1 // IL_012d: bne.un IL_01e4 // все что ниже этой метки больше не пригодится // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Есть еще маленькие хитрости: 1. .maxstack 3 записи подобного рода можна бахать бес сожаления в методах которые правите 2. IL_0127 это метки и одновременно указатель на opcode len на это можно не обращать внимание, они работают только как метки 3. при декомпиле можно задать расширение .h т.е. ildasm myexe.exe /out:myexe.h - это для того что бы файл править редактором VS, всетаки синтаксис кое какой показывает и самое главное тама можна Многа! заремить , а если ставить расширение .cs тоже синтаксис подсвечивает, но студия умирает, т.к. в .cs она проверяет всяки синтакс ошибки, а в с+ только в момент компила. 4. D:\Program Files\traffic\Crack>ilasm networkexperiments.h /debug /listing /Clock >> log.txt /listing показывает подробности компила в том числе опкоды, доп инфу и т.д. log.txt потому что все в консоль не влазит 74c2_networkexperiments.rar ----- have a nice day |
|
Создано: 29 августа 2005 21:21 · Личное сообщение · #6 Nimnul Попробовал я пропатчить в хекс редакторе. Прога работает но запускается с ошибкой. Еденицу положил туда, куда надо было. Переделал по другому. Изменил условные переходы, как было написано в начале топика, прога работает нормально и пишет registered. Но, всётаки хотелось бы положить еденицу туда, куда надо. Хотелось бы вкраце узнать: Nimnul пишет: PS: Не забывайте резать SN Как ? |
|
Создано: 29 августа 2005 21:43 · Личное сообщение · #7 |
|
Создано: 29 августа 2005 21:50 · Личное сообщение · #8 я в хекс редакторе даже заморачиваться не хочу резать SN, как? очень просто дизасемблиш, срезаеш, асемблиш. Темболее эта прога, это полный отстой, в плане защиты. CLR позволяет понатыкать проверки SN даже перед вызовом методов, более того можно делать проверки на то какой exe загрузил эту dll и все по SN, так что я пока еще не сада-маза что бы хекс едитором тама капашиться, да и еще есть сильное подозрение что после правки хекс едитором, если ты вырежеш кусок кода или вставиш прога завалится, т.к. в таблице метаданных прописанны стат адреса классов и методов. Иногда еще может потребываться после правки подписать сборку своим SN, это если сборка обязанна валяться в GAC. Так что не слушай нехороших людей , которые сбивают с пути истинного, ilasm\ildasm рулит, смотри мои примеры по меткам //Crack. PS: что бы тебе компильнуть, то что я показывал в аттачах нужны еще ресурсы которые я туда не положил, но они сгенерятся после декомпила. ----- have a nice day |
|
Создано: 29 августа 2005 22:46 · Личное сообщение · #9 |
|
Создано: 29 августа 2005 23:11 · Личное сообщение · #10 |
|
Создано: 30 августа 2005 11:41 · Личное сообщение · #11 |
|
Создано: 05 июня 2006 22:54 · Личное сообщение · #12 |
|
Создано: 07 июня 2006 10:48 · Личное сообщение · #13 |
|
Создано: 09 июня 2006 12:40 · Личное сообщение · #14 |
|
Создано: 10 июня 2006 14:14 · Личное сообщение · #15 |
|
Создано: 11 июня 2006 21:45 · Личное сообщение · #16 |
|
Создано: 11 июня 2006 23:31 · Личное сообщение · #17 |
|
Создано: 12 июня 2006 13:08 · Личное сообщение · #18 И когда? Умрет в смысле? Сколько ты ей еще даешь? Что-то я пока агонии не замечаю, как раз наоборот, все больше и больше разработчиков пересаживаются за C#. Кстати, а многим ли нужна кросс-платформенность Java? Лично я знаю не так много софта, который в чистом виде работает, например и под Win32 и под Linux. В основном это всякая мелочь, кросс-платформенность которой и не нужна вовсе. А вот серьезный софт имеет разные пакеты инсталляции для тех же Win32 и Linux, потому что не хватает ему той платформо-независимости, которую предлагает Sun и приходится часть функционала реализовывать на нативном уровне, отдельно для Win32 и отдельно для Linux. Переносимость, как таковая, нужна очень небольшому числу разработчиков, которые в основном работают в корпоративном секторе, ИМХО. Вот вы сами пишите на Java? И как часто вы используете ее переносимость? И если используете, какое кол-во строк в ваших программах? Наверняка это небольшие поделки, ценные исключительно для вас. Поэтому, мое личное мнение, что .NET будет жить. Все выше сказанное ИМХО. Ничего личного. Сори за флейм. |
|
Создано: 12 июня 2006 13:48 · Личное сообщение · #19 |
|
Создано: 12 июня 2006 15:11 · Личное сообщение · #20 |
|
Создано: 12 июня 2006 16:11 · Личное сообщение · #21 |
|
Создано: 14 июня 2006 15:32 · Личное сообщение · #22 |
|
Создано: 15 июня 2006 03:18 · Личное сообщение · #23 |
|
Создано: 15 июня 2006 17:31 · Личное сообщение · #24 |
|
Создано: 18 июня 2006 08:04 · Личное сообщение · #25 |
|
Создано: 18 июня 2006 16:28 · Личное сообщение · #26 |
<< . 1 . 2 . |
eXeL@B —› Основной форум —› Отладка и patch программ написанных на .NET |