Сейчас на форуме: testrev1337, vsv1, 2nd, bedop66938 (+7 невидимых) |
eXeL@B —› Крэки, обсуждения —› Последний Шаг или.Net и с чем его едят |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 04 марта 2009 21:52 · Поправил: FleXik · Личное сообщение · #1 Всем доброго времени суток. Это опять я=) как говорится помогите кто чем может, нипайму я как разрезать внутренности ДотНет проги( а точнее добраться до сути немогу. Начну с того что 2\3 я уже сделал, а именно 1) залез на сайтец проги , слил ее оттуда (благо ОдМиН оказался лохом) и запрос юзер\пасс меня не остановили. 2) Сетапер который я слил оказался запароленный, но пароль я всетаки выдрал для некольких продуктов, один из которых был мой. ну думал все- ага не тут то было- самое сладкое осталось напоследок 3) установив прогу оказалось что требуется Authorization Code. дальнейшие исследования показали что : "удалено за ненадобностью" |
|
Создано: 10 марта 2009 11:57 · Личное сообщение · #2 нашел интересный кусок кода Code:
|
|
Создано: 10 марта 2009 11:58 · Личное сообщение · #3 Code:
|
|
Создано: 10 марта 2009 11:58 · Личное сообщение · #4 Code:
|
|
Создано: 10 марта 2009 12:04 · Личное сообщение · #5 Первый самый интересный ибо в нем есть MiTekLicensing.FeatureLicense2 featureLicense2_3 = (MiTekLicensing.FeatureLicense2)ienumerator2.Current; s11 = featureLicense2_3.Expiry; s12 = featureLicense2_3.ID; s13 = featureLicense2_3.Description; string s14 = featureLicense2_3.ParentFeatureNumber; l += System.Convert.ToInt64(s11); дальше идет отделение compname ну и тд и закидывание всего этого добра в локальные переменные, но а где же проверка то? Оо тут вижу проверку только на дату... выходит она в другом модуле??? и timeSpan = System.DateTime.ParseExact(s11, s8, iformatProvider) - dateTime2; которая как я полагаю вычисляет количество оставшихся часов работы. но так как в си я не очень сильно рублю - обьясните кто знает шо такое idisposable2 = ienumerator2 as System.IDisposable и если можно то какие то свои коментарии по этому поводу. |
|
Создано: 10 марта 2009 12:07 · Личное сообщение · #6 вот в другом модуле вроде бы идет чтение с файла лицензии Code:
|
|
Создано: 10 марта 2009 12:07 · Поправил: FleXik · Личное сообщение · #7 то есть файл должен иметь вид i1 = binaryReader.ReadInt32(); s2 = binaryReader.ReadString(); s3 = binaryReader.ReadString(); s4 = binaryReader.ReadString(); MiTekLicensing.MiiLicensing.z.Elapsed += new System.Timers.ElapsedEventHandler(MiTekLicensing.MiiLicensing.b); MiTekLicensing.MiiLicensing.z.Interval = 1800000.0; MiTekLicensing.MiiLicensing.z.Start(); вот тоже смешной код - проверяет не истекло ли время лицензии каждые 18 минут? |
|
Создано: 10 марта 2009 12:15 · Личное сообщение · #8 |
|
Создано: 10 марта 2009 12:17 · Поправил: FleXik · Личное сообщение · #9 вопрос в том что я его нимагу найти ((( да и проверяется оно в нескольких местах. вот допустим структура описывающая файл лиценизии как я понимаю private static void a(ref MiTekLicensing.SeatFingerPrint A_0) { int i = 18; if (!0) { } string s1 = Root.a.i(); // методы i j k f c вытаскивают из системы соответствующие переменные string s2 = Root.a.j(); string s3 = Root.a.k(); string s4 = Root.a.f(); string s5 = Root.a.c(); Root.a.b(); A_0 = new MiTekLicensing.SeatFingerPrint(); A_0.ComputerName = s4; A_0.OSUserName = s5; A_0.MACAddress = s1; A_0.CPUId = s3; A_0.VolumeSerialNumber = s2; string s6 = Root.u.c().a(Root.<Module>.a("\u713B\u573D\u143F\u2741\u2F43", i)).b(Root.<Module>.a("\u493B\u4D3D\u253F\u3041\u2D43\u2845\u2E47\u254 9\u624B\u274D\u3E4F\u3B51", i)).FullName; A_0.RegisterUserType = System.Convert.ToInt32(Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u1043\u3F45\u3847\u2F49", i), Root.<Module>.a("\u0C3B", i))); A_0.RegisterName = Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u723B\u5F3D\u2D3F\u2741", i), Root.<Module>.a("\u6C3B\u4C3D\u2F3F\u3A41\u3D43", i)); A_0.RegisterCompany = Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u7F3B\u513D\u2D3F\u3241\u2543\u2845\u3147", i), Root.<Module>.a("\u6C3B\u4C3D\u2F3F\u3A41\u3D43", i)); A_0.RegisterEMail = Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u793B\u733D\u213F\u2B41\u2843", i), Root.<Module>.a("\u6C3B\u4C3D\u2F3F\u3A41\u3D43", i)); A_0.SiteId = System.Convert.ToInt32(Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u6F3B\u573D\u343F\u2741\u0843\u2945\u2B47\u2B49\u384 B\u274D\u3F4F\u3C51\u1D53\u3255", i), Root.<Module>.a("\u0C3B", i))); A_0.FeatureTemplateId = System.Convert.ToInt32(Root.l.a(s6, Root.<Module>.a("\u693B\u4D3D\u253F\u3041\u0D43\u2845\u2E47\u2549", i), Root.<Module>.a("\u7A3B\u5B3D\u213F\u3641\u3143\u3445\u2D47\u1E49\u294 B\u234D\u204F\u3E51\u3553\u2255\u3D57\u1359\u385B", i), Root.<Module>.a("\u0C3B", i))); } |
|
Создано: 10 марта 2009 12:54 · Личное сообщение · #10 |
|
Создано: 15 марта 2009 12:29 · Личное сообщение · #11 |
|
Создано: 15 марта 2009 12:52 · Поправил: Ultras · Личное сообщение · #12 FleXik пишет: MiTekLicensing.MiiLicensing.z.Elapsed += new System.Timers.ElapsedEventHandler(MiTekLicensing.MiiLicensing.b); MiTekLicensing.MiiLicensing.z.Interval = 1800000.0; MiTekLicensing.MiiLicensing.z.Start(); вот тоже смешной код - проверяет не истекло ли время лицензии каждые 18 минут? Вообще-то 1800000 мсек = 30 минут И не надо ничего удалять, проще в конце рег. ф-ии вернуть True (или 1) плюс может прийдется установить переменную, отвечающую за regsuccess в True. А по-хорошему надо алго разбирать(рипать) и кигенить... Ты саму процедуру проверки основную нашел или нет? Переведи нужные строки вида "System.Convert.ToInt32(Root.l.a(s6, Root.<Module>.a("....." в нормальный вид и всё станет прозрачно. Напиши небольшую программку, по декоду этих строк просто рипнув алго и замени в коде на декодированные. Если лень, добавь в Root.l.a логгинг входных пар-ов и ее рез-т. потом поищи просто в логе что нужно и замени в сурсе. Ну и методы порефакторить не мешает для удобства разбора. ----- .[ rE! p0w4 ]. |
|
Создано: 16 марта 2009 01:14 · Личное сообщение · #13 Ultras да все уже сделано =) впринципе на данном этапе идет разборка этого кода с нормальными строками итп для создания кейгена. просто мы с диггером в аське перекидываемся а суда пока ничего не постил=) + я написал прогу по разбору этих ужасных goto и переводу их к нормальному виду включая автоопределение перехода в инструкции switch и обход всех Условных переходов как отдельных ветвей дерева... кароче с нуля во всем разветвлениям и делает из этого хтмл файл табличками=) диггер сказал что, я, цитирую: "Редкий извращенец =)" |
|
Создано: 16 марта 2009 01:16 · Личное сообщение · #14 |
|
Создано: 16 марта 2009 01:17 · Поправил: FleXik · Личное сообщение · #15 так же сразу скажу что там шифруются "XML теги имеющие (см след пост) " тупой функцией дотнета: Code:
|
|
Создано: 16 марта 2009 01:17 · Поправил: FleXik · Личное сообщение · #16 первый батон- дешифрация ... второй батон шифрация=) Code:
|
|
Создано: 16 марта 2009 01:22 · Личное сообщение · #17 так же пишется все это добро в зашифрованном варианте в файлы C:\Documents and Settings\FleX\MiTek msys.dat -сам файло лицензии который имеет формат : int32 string (= шифрованным хмл тегам.. каким точно пока не допер потому как ругается пока что) msys2.dat -доп файло хер нает для чего но в нем int32 string (да вы угадали! тоже пошифрованные XMLки) string string и для него определяется : .property instance string Description .property instance string Expiry .property instance string ID .property instance string ParentFeatureNumber щаз копаю глубже |
|
Создано: 16 марта 2009 01:44 · Личное сообщение · #18 смешной цикл: Code:
|
|
Создано: 16 марта 2009 02:33 · Личное сообщение · #19 |
|
Создано: 16 марта 2009 13:31 · Поправил: FleXik · Личное сообщение · #20 ошибочка вышла... файл msys2.dat является ограничителем по времени и имеет формат int32 - если >0x3e8 то считывается str5, если меньше то не считывается=) str2 - строка-ключ для дешифрации строк str5,str4,str3 str3 - часы, минуты, секунды str4 - имеет формат MMddyyyyHHmmss выбераются токо ЧМС и сверяется с расшифрованной str3, если не совпали берется текущее время и проверяется на зашкаливаение, зашкалило- вернуть 0 , нет? - вернуть 1, при неправильной сверке вернуть 100 str5 - stsfld string MiTekLicensing.MiiLicensing::m суда пишется ( если его нет в файле то в то ще статическое поле пишется call string [mscorlib]System.Environment::get_UserDomainName() - те похоже что параметр int32 отвечает за нахождение в домене или отдельная раб станция Имхо) |
|
Создано: 16 марта 2009 21:01 · Личное сообщение · #21 |
|
Создано: 16 марта 2009 22:25 · Личное сообщение · #22 Ув. Nimnul просвятите, будьте добры, где же этот байт. я может и анпакер не писал, но не полный идиот что б не найти этот байт, причем там на каждый ехе модуль создается отдельная структура отвечающая за конец лицензии на данный ехе. если есть такой байт я с радостью признаю свою ошибку! с Ув. FleX. |
|
Создано: 16 марта 2009 23:27 · Личное сообщение · #23 Если не сложно ув. господа, посмотрите http://www.exelab.ru/f/action=vthread&forum=5&topic=14006 <--" target="_blank">--> http://www.exelab.ru/f/action=vthread&forum=5&topic=14006 <-- а то меня сюда направляют, говорят, что без .Net никак, это так? |
|
Создано: 17 марта 2009 13:15 · Личное сообщение · #24 pox77 как доломаю я постараюсь написать статью + возможно видеоролик поподробней как все это делалось, а если вы читали тему то наверное должны были много почерпнуть. дело в том что я, как говорилось выше, прочитал 3 статьи по .net с краклаба и честноговоря многого тогда не понял. pox77 пишет: без .Net никак, это так? нет. вы можете просидеть в ольке несколько часов, потому что используется что то типа псевдокода, и горячолюбимый всеми фреймворк разгребает у себя все инструкции в цикле, который вы кстати тоже можете найти и увидеть передаваемые параметры (я так нашел в установщике серийный номер для проверки. установщик тоже был на дотнет писаный). то есть если ы хотите отловить допустим вылазинье месагбокса то просто ставте бряк на функцию в user32 messageboxtimeoutA (вроде она предпоследняя перед вызовом ) а потом когда месагбокс пропустите прога всеравно поднимется наверх по колстеку и выйдет на место в проге где оно вызывается( Сразу предупреждаю- в оле будьте готовы к тому что код будет ВНЕ ЛЮБОГО МОДУЛЯ и вы его не сможете проанализировать олей-только по асм коду ручками) |
|
Создано: 17 марта 2009 13:35 · Личное сообщение · #25 |
|
Создано: 30 марта 2009 19:04 · Личное сообщение · #26 Прошу прощения за не самый умный вопрос но какие принципиальные отличия между прогами .net and .exe если при этом они одинаковы по функционалу. И счем их едят ( чем отлаживать ). 1. Программа написаная на .net будет работать гораздо дольше чем аналогичная на api 2. Эта технология призвана облегчить процесс программирования. 3. исполнении кода в виртуальной среде выполнения улучшает безопасность 4. Формат исполняемых файлов .NET Framework расширяет спецификацию PE (Portable Executable), так что мы по-прежнему имеем дело с EXE и DLL-файлами, но содержание у них новое. Есть ли что-нибудь интересное в этой технологии с точки зрения безопасности и небезопасности. |
|
Создано: 30 марта 2009 19:30 · Личное сообщение · #27 |
|
Создано: 31 марта 2009 21:42 · Личное сообщение · #28 я смотрю пошли оффтоповые вопросы и вопросы непотеме. подытожу - в проге разработчики накуралесили просто охренеть как. я уже задолбался кругами ходить и плясать с бубном вокруг ихних нескольких дат и проверок что б лицензия больше чем на 5 дней юзеру не выдавалась. на сем хочу закрыть тему. всем спс |
<< . 1 . 2 . |
eXeL@B —› Крэки, обсуждения —› Последний Шаг или.Net и с чем его едят |
Эта тема закрыта. Ответы больше не принимаются. |