Сейчас на форуме: vasilevradislav, Magister Yoda, site-pro (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› .NET
Посл.ответ Сообщение

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

Создано: 24 января 2013 23:21 · Поправил: Monk32
· Личное сообщение · #1

Добрый День Друзья!
Как продвинутый новичок я себе ищу программы с легкой защитой для того чтобы набраться опыта. Хотя я думаю что моя проблема решится легко, все таки для меня это пока не просто. Вот я и решил посоветоваться.
Разработчик выпустил новую версию программы и я решился взятся за дело
Я на данный момент остановился на том что программа прекрасно активируеца, но при "рестарте" больше не работает.

Вот так я проработал:
1. Я разпокавал программу (дотфускатор)
2. Из ресурсов извлек саму программу. (Рефлектором)
3. Анализировал программу и пропатчал то что счетал нужным.

Code:
  1. Return Enum10.const_0 <-- Программа активируеца.






На этом я думал что это все, но оказалось что нет. После ввода "рег кода", программа хочет перестартовать себя и на этом месте все затикаеца.
--> Пока файл "C:\ProgramData\CompuLearn\DE_FR_data\activation2.txt" в ручную не удалится, программа не будет стартовать. Туда записоваеца рег код, который мы вводим.

Так как я умный человек я изследовал шаги программы от самого "энтри поинт", но дело втом что я абсолютно нечиго не нахожу, в каком месте программа иммено затикаеца, так как это значит что происходит еще одна дополнительная проверка. Я уже и прошол все классы и поиском проверил в каких местах программа читает "activation2.txt" ... нечиго не нахожу

Буду рад если ктото сможет взглянуть и дать мне подсказку куда надо смотреть.
Надеюсь получить новый опыт!


Оффициальную программу можно скачать тут:
http://goo.gl/v5fid

Мою разпоковоную, но не тронутую .exe можно скачать тут:
http://rghost.ru/43287107

PS: я пишу на транслите через Google, клавиатуры русской нету, извените за ошибки!



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

Создано: 25 января 2013 02:06 · Поправил: coder13
· Личное сообщение · #2

Думаю стоит обратить внимание на метод smethod_7 в Class67. Если исправить его и smethod_8, чтобы они сразу возвращали Enum10.const_0, то активация не нужна как таковая.

Остается только подправить саму форму активации, чтобы она не кидала ошибку, если пользователь все-таки ее вызвал.



| Сообщение посчитали полезным: Monk32

Ранг: 85.4 (постоянный), 51thx
Активность: 0.090
Статус: Участник

Создано: 25 января 2013 11:17
· Личное сообщение · #3

алгоритм генерации пустяковый, разберите лучше его

| Сообщение посчитали полезным: coder13, Monk32

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

Создано: 25 января 2013 18:24
· Личное сообщение · #4

coder13

Я просмотрел "smethod_7 в Class67"
Но я в "ILCODE" не нахожу инструкцию чтобы изменить "return" на "Enum10.const_0"
Там только простой "ret".





Вы не могли бы уточнить, нахожусь я в правильном месте?
Спасибо!

drone
Дело в том, я бы как то тоже предпочеталь бы написать кейген, но я не нахожу не одной статьи что бы научится понимать значения типо "buffer" или "num" как в этом коде.



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

Создано: 25 января 2013 19:44 · Поправил: coder13
· Личное сообщение · #5

В Enum10 у каждого элемента есть определнное значение, для Enum10.const_0 это 0. То есть как в smethod_7, так и в smethod_8 можно удалить все инструкции и заменить их на:

Code:
  1. ldc.i4.0
  2. ret


это минимум. еще есть дата, которую оба метода возвращают, по идее ее тоже нужно установить.

Вообще рекомендую ознакомится со всеми возможными командами IL: --> Link <--



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

Создано: 25 января 2013 20:28 · Поправил: Monk32
· Личное сообщение · #6

coder13

Программа может и кажется активированный но при старте любого не активированного задания, не работает. Открывается пустое окно с какимето иероглифами...Иммено когда выбрать одно из "закритих" заданий.



Вы в этом смысле указали что это "минимум" ? Или совсем надо решать это по другому?

Мое предположения что типо после активации программа импортирует "закрытие" заданий. А так как тут чтото не хватает, оно не работает.
-------
Я до этого пользовальса списком "IL-Кодов" Википедии:
http://en.wikipedia.org/wiki/List_of_CIL_инструцтионс
Но ваша ссылка гаразда лутше, спасибо!



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

Создано: 25 января 2013 21:56 · Поправил: coder13
· Личное сообщение · #7

Именно. Без правильной даты закрытые упражнения останутся закрытыми.

Исправленный код для smethod_7:

Code:
  1. ldarg.1 
  2. ldstr ""
  3. stind.ref 
  4. ldarg.2 
  5. ldstr ""
  6. stind.ref 
  7. ldarg.0 
  8. ldc.i4 0xbb8
  9. ldc.i4.1 
  10. ldc.i4.1 
  11. newobj instance void [mscorlib]System.DateTime::.ctor(int32, int32, int32)
  12. stobj [mscorlib]System.DateTime
  13. ldc.i4.0 
  14. ret 


smethod_8:

Code:
  1. ldarg.0 
  2. ldc.i4 0xbb8
  3. ldc.i4.1 
  4. ldc.i4.1 
  5. newobj instance void [mscorlib]System.DateTime::.ctor(int32, int32, int32)
  6. stobj [mscorlib]System.DateTime
  7. ldc.i4.0 
  8. ret 


ну и чтобы программа не падала при вызове окна активации, надо поправить method_5 (также в Class67):

Code:
  1. ldstr ""
  2. ret 


| Сообщение посчитали полезным: Monk32

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

Создано: 26 января 2013 04:54
· Личное сообщение · #8

Я поправил "smethod_7", "smethod_8" и "method_5" в "Class67" как вы указали, но пока ничего не изменилось. Все так же упражнения закрыты/не работают.



По моим предположениям всетаки по вашиму коду Дата не возвращается/передается а только "Enum10.const_0"
Я не ошибаюсь?



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

Создано: 26 января 2013 16:15
· Личное сообщение · #9

Ошибаетесь. Всегда читайте код. Аргумент даты помечен out/byref и возвращается в любом случае. Нужно только присвоить значение.

Посмотрите видео: --> Link <--

| Сообщение посчитали полезным: Monk32

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

Создано: 26 января 2013 18:06 · Поправил: Monk32
· Личное сообщение · #10

coder13

Спасибо большое за видео.
Дело в том что в видео, вы выбрали упражнения каторые были открытые в демо версии. Каторые и у меня работают. Но побробуйте выбрать одно из упражнении которые были ранее закрыты. А с откритых упражнении галочку уберите.

Я тоже загрузил видео, чтобы уточнить проблему.
--> Link <--



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

Создано: 27 января 2013 01:48
· Личное сообщение · #11

Monk32

да, вижу.. странно вообще. попробую разобраться

| Сообщение посчитали полезным: Monk32

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

Создано: 28 января 2013 16:52 · Поправил: Monk32
· Личное сообщение · #12

Я не понимаю почему программа не работает
Всетаки я изследовал весь код, но пока я думаю что я чтото не замечаю толи пропускаю...
Может какие то новости есть?



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 29 января 2013 17:27
· Личное сообщение · #13

Замороченная софтина. Подозрение, что она стучится в нет и перепроверяется на регисрацию.
В файле de-fr.c3bin скрыта DLL в которой есть расшифровщики, они могут быть замешаны.
Сама регистрация проверяетс не только в основном файле.
Принцип проверки РЕГКОДа:
имеем после запуска файл activation2.txt со строкой AQBLHGKAF75VNRWW.
далее при вводе в программу кода активации FCMBSH3BHIJKLMNOPQRSTUVWX7777772, где начало всегда F, далее 3-и знака переводятся в кол-во дней, след. 4-е контрольная сумма всего номера, след произвольное значение длинной 24 символа ИТОГ 32 символа , происходи следующее.
Два кода сливаются и получается :
RFAQBLHGKAF75VNRWWFCMBHIJKLMNOPQRSTUVWX7777772
берем MD5
f2ecf09a526969f12d7f40484ca62002
далее берем первые 3-и байта
0xF0ECF & 0xFFFF
осталось 2-а байта
0x0ECF
спрока активации проходит через функцию
Code:
  1. private static byte[] smethod_2(string string_3)
  2.         {
  3.             byte[] buffer = new byte[string_3.Length];
  4.             for (int i = 0; i < string_3.Length; i++)
  5.             {
  6.                 buffer[i] = (byte)"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567".IndexOf(string_3[i]);
  7.             }
  8.             return buffer;
  9.         }

из SH3B получаем 0x12, 0x07, 0x1B, 0x01
далее считается
Code:
  1. num2 = 0 + buffer[4];
  2. num2 += buffer[5] << 5;
  3. num2 += buffer[6] << 10;
  4. num2 += buffer[7] << 15;

значение num2 должно совпадать с 0x0ECF.
из CMB получаем 0x02, 0x0C, 0x01, 0x12
далее
Code:
  1.             num3 = 0 + buffer[1];
  2.             num3 += buffer[2] << 5;
  3.             num3 += buffer[3] << 10;

значение num3 = 0x0582 это кл-во дней прибавляемых к дате 01,01,2010 получаем 11.11.2013
Вот и все, программа считает себя зарегистрированной, но после запуска зависает.
при удалении файла activation2.txt, продолжает работать в ДЕМО режиме.
Нужно искать место где прога стучится на сервер или выяснять для чего нужны 24 символа к активации, которые в выложенном EXE не проверяются.

| Сообщение посчитали полезным: coder13, Monk32


Ранг: 500.6 (!), 7thx
Активность: 0.260
Статус: Участник

Создано: 29 января 2013 19:13
· Личное сообщение · #14

CommView вам знакома ?
Через неё можно посмотреть, стучится куда-либо или нет.

| Сообщение посчитали полезным: Monk32

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

Создано: 29 января 2013 19:48
· Личное сообщение · #15

Tyra

Бог ты мой, Мамочки....

...

Я уверен что программа не стучится домой так как у меня абсолютна проходит все через Firewall, любая программа.
(Кроме того разробочик пишет что интернет при активации и использовании не требуется.)

Вопрос: Как дейстовать дальше?
Советуите обследовать "de-fr.c3bin" ? А как же можно его разпокавать?

Дело в том что я обследовал все инструкцие от энтри поинта, почему программа виснет я не нахожу.
Всетаки наверно это связанно с "de-fr.c3bin" ...



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 29 января 2013 22:10
· Личное сообщение · #16

Monk32 пишет:
Советуите обследовать "de-fr.c3bin" ? А как же можно его разпокавать?

Советую. Найдите чтение этого файла и получите расшифровку из него DLL. Дальше сложнее т.к. придется переписывать половину кода, для возможности извлечения всех данных из этого файла.
В голой, т.е. незарегистрированной/ломаной, программе нажмите на закрытый урок и получите мессагу, её найдите в ЕХЕ и посмотрите куда она ведет т.е. откуда вызываеся.



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

Создано: 29 января 2013 22:39
· Личное сообщение · #17

Tyra
Для интереса, а может легче написать всетаки кейген?

Но так как я не имею достаточно знаний о "Сериал Фишинге" я пока попытаюсь обследовать по вашиму совету. Если вы чтото новое узнаите, я буду рад если сообщите. Спасибо.



Ранг: 78.7 (постоянный), 43thx
Активность: 0.070
Статус: Участник

Создано: 30 января 2013 10:38
· Личное сообщение · #18

Monk32 пишет:
Для интереса, а может легче написать всетаки кейген?

Что он Вам даст ? Давай свой ключик, я сделаю активацию, но прога с ней работать не будет.

| Сообщение посчитали полезным: Monk32

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

Создано: 30 января 2013 21:09 · Поправил: Monk32
· Личное сообщение · #19

Аааах...Я просто не совсем понял.

Получается что единственная проблема это 24 символа которие как то все равно, скрыто, проверяется. Потомучто, если первую часть можно без проблем сгенерировать остаются все таки эти 24 символа. Хммм...

Tyra пишет:
Найдите чтение этого файла и получите расшифровку из него DLL





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

Создано: 06 февраля 2013 00:50 · Поправил: Monk32
· Личное сообщение · #20

Рассмотрел все что мог. Я сдаюсь
Может ктото может мне помочь?





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 06 февраля 2013 07:25 · Поправил: ZaZa
· Личное сообщение · #21

Monk32
Если сдался, тогда в запросы на взлом... Там найдется, кто поможет...
И вообще, печально... Столько потрачено времени, сил, и так легко сдаться?

-----
One death is a tragedy, one million is a statistic.




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

Создано: 06 февраля 2013 12:22 · Поправил: Monk32
· Личное сообщение · #22

ZaZa пишет:
Если сдался, тогда в запросы на взлом


Ну это же не интересно ...

ZaZa пишет:
И вообще, печально... Столько потрачено времени, сил, и так легко сдаться?

По твоим словам это все таки возможно ?
И не так сложно как я думаю ?




Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 06 февраля 2013 12:28
· Личное сообщение · #23

Monk32 пишет:
По твоим словам это все таки возможно ?

Все возможно!

Monk32 пишет:
И не так сложно как я думаю ?

Не знаю, честное слово... Не смотрел, да и не хочется, почему то...

-----
One death is a tragedy, one million is a statistic.




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

Создано: 06 февраля 2013 12:35 · Поправил: Monk32
· Личное сообщение · #24

Спасибо за поддержку!


 eXeL@B —› Крэки, обсуждения —› .NET
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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