Сейчас на форуме: asfa, Rio, _MBK_, Adler (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Новая версия CrackMev1.1
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

пока



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 24 апреля 2013 20:01
· Личное сообщение · #2

Protect32.dll, Protect64.dll - старфорса насмотрелись чтоли




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 24 апреля 2013 20:29
· Личное сообщение · #3



-----
ds


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


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 24 апреля 2013 22:05 · Поправил: plutos
· Личное сообщение · #4

Alinator3500
Вот вы писали в своей прошлой теме:

Учу C# 3 дня...
Знаю что на лающую собаку внимания обращать не надо, но я еще учусь, извиняйте...


Все это конечно правильно, да. Но обычно цель crackMe это показ чего-то нового, обьяснение какого-нибудь необычного аспекта, а вовсе не повторение самых общих мест. Так может не стоит тратить время (свое и чужое) на пустяки и поучить C# еще хоть неделю?

-----
Give me a HANDLE and I will move the Earth.


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


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

Создано: 25 апреля 2013 06:27
· Личное сообщение · #5

Все зарыто в файле Protect.dll: --> Link <--

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




Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

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

Да ладно, не набрасывайтесь. Пусть лучше крякмисы пишет, чем у бабушек в подъезде пенсии отбирает.

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

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

Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

ага




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

Создано: 25 апреля 2013 20:24
· Личное сообщение · #8

Alinator3500 пишет:
Если есть вопросы задавайте, постараюсь ответить.

Самый главный: ЗАЧЕМ?

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


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

Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

буду не скоро



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

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

Alinator3500 пишет:
Из защиты можно отметить только обфускацию, другое чистая математика.

А ты оставь второе (так как твои умственные способности были затрачены лишь на это) и выложи.
Потому что получается так, что оценивается не твой мегакрутой математический алгоритм, а в первую очередь сложность вышеуказанного обфускатора (http://www.vgrsoft.com/en/products/ilprotector).

JMPer пишет:
Может еще и синтаксис подсветить?

Видимо у тебя напрочь отсутствует понятия крякми, либо тестируешь защиту, которую в скором времени собрался продавать.

Либо предлагай полностью свою защиту, а не в комплекте протектором либо...
предложение модерам закрыть топик.



Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

Создано: 25 апреля 2013 22:08 · Поправил: Alinator3500
· Личное сообщение · #11

ога




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 25 апреля 2013 23:42
· Личное сообщение · #12

вводимый ключ может быть длиной 4, 5 или 7 символов
формируется строка, составленная из n ключей, где n = длина введённого ключа

например, для для ключа ABCD (длина 4)
формируется строка ABCDABCDABCDABCD (ключ 4 раза)

а для ключа ABCDE (длина 5)
формируется строка ABCDEABCDEABCDEABCDEABCDE (ключ 5 раз)

для полученной строки вызывается String.GetHashcode()

если ключ был длиной 4 символа, str.GetHashCode() == 0x56CF6876
если ключ был длиной 5 символов, str.GetHashCode() == 0x5BF977E0
если ключ был длиной 7 символов, str.GetHashCode() == 0x2842AB69

ЭТО в понимании автора называется
Alinator3500 пишет:
чистая математика


nuff said



Ранг: 27.8 (посетитель), 51thx
Активность: 0.030
Статус: Участник

Создано: 26 апреля 2013 01:34
· Личное сообщение · #13

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

ПЫСЫ: ИМХО

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

Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

неа




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

Создано: 26 апреля 2013 08:09
· Личное сообщение · #15

Alinator3500 пишет:
Я хочу учиться, и помогать другим.

Помоги другим: не пиши больше CrackMe

Если хочешь помогать - разбери VMProtect до винтика, напиши Unpacker... И программировать научишься и поможешь всем...

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


| Сообщение посчитали полезным: Dart Sergius, gazlan


Ранг: 164.6 (ветеран), 65thx
Активность: 0.120
Статус: Участник
Волшебник

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

Alinator3500 пишет:
Вот моя вторая версия

Alinator3500, ещё раз повторю вроде бы прописные истины. Своя защита - это свой метод хеширования, свой криптоалгоритм, свой метод обфускации, своя виртуальная машина, своя антиотладка. Если хоть что-то из этого реализовано в вашем кракми, то тогда его можно назвать своим и его действительно будет интересно ломать если не из-за сложности, то из-за неординарности хотябы.

-----
Следуй за белым кроликом




Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

Создано: 26 апреля 2013 14:01 · Поправил: Alinator3500
· Личное сообщение · #17

бум бум




Ранг: 105.6 (ветеран), 36thx
Активность: 0.10
Статус: Участник

Создано: 26 апреля 2013 14:52
· Личное сообщение · #18

Alinator3500, повесили там обфускатор, немного математики, и вуаля? Пока смотреть даже не охота, и я в net не силен.




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 26 апреля 2013 15:17 · Поправил: -=AkaBOSS=-
· Личное сообщение · #19

Alinator3500 пишет:
пароль не 4, 5 или 7 символов, код лишь "заставил" так подумать

действительно, я ошибся. пароль может быть любой длины, кроме 4, 5 и 7 символов
обрабатывается так, как я уже описывал выше
условие:
Code:
  1. str.GetHashCode() == 0x73294FAC + Key.Length * (Key.Length + 2)


один хрен, тут есть только один способ решения - брутфорс

/ADD
Alinator3500 пишет:
странно, да?

нет, странно - это записывать длину введённого ключа в строку в двоичной системе, и на основе этой строки делать switch

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

Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

бывает же такое




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 27 апреля 2013 19:20
· Личное сообщение · #21

Alinator3500 пишет:
CrackMev1.3


ключ длиной семь символов (седьмой символ не участвует в рассчёте)
a = key[0] + key[2] + key[4]; // 0xA5 >= a >= 0x9F
b = key[1] + key[3] + key[5]; // 0xA8 >= b >= 0xA5
c = (a + b) - key.Length * 2; // 0x140 >= c >= 0x135

таким образом, пароль может выглядеть так:
7878787

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


Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

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

-=AkaBOSS=- пишет:
str.GetHashCode() == 0x73294FAC + Key.Length * (Key.Length + 2)

Я чего-то не понял ?

Возьмём ключ jo6x0mOgG его длина = 9
GetHashCode(jo6x0mOgG) == 0x73294FAC + 9 * (9 + 2)
0х7329500F == 0x73294FAC + 99
7329500F == 7329500F

-=AkaBOSS=- пишет:
имеется в виду ЭТО

Не заметил Теперь ясно.

-----
ds





Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 28 апреля 2013 01:34 · Поправил: -=AkaBOSS=-
· Личное сообщение · #23

DimitarSerg пишет:
Я чего-то не понял ?

именно так

я писал
-=AkaBOSS=- пишет:
обрабатывается так, как я уже описывал выше

имеется в виду ЭТО

GetHashCode() вызывается не для ключа, а для строки, сформированной из n ключей, записанных подряд.
n в данном случае - это длина вводимого ключа



Ранг: 46.8 (посетитель), 20thx
Активность: 0.040
Статус: Участник

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

мде




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 28 апреля 2013 13:28 · Поправил: -=AkaBOSS=-
· Личное сообщение · #25

Alinator3500 пишет:
Даже не знаю что сказать, в проекте нет +n(n+2). Только что проверил все варианты.

Code:
  1. call dword ptr [eax+8]         // вызов GetHashCode()
  2. lea edx, [edi+2]            // здесь в edi - длина ключа
  3. imul edx, edi
  4. sub eax, edx
  5. mov edx, eax
  6. cmp edx, 73294FACh
  7.   jnz fail

видимо, в проекте написано как-то так:
Code:
  1. if (str.GetHashCode() - Key.Length * (Key.Length + 2) == 0x73294FAC)

но сути это не меняет


Alinator3500 пишет:
CrackMe на C++

Code:
  1. num[3] + num[2] == num[1];
  2. num[0] + num[4] == 50;
  3. num[0] != num[4];


пароль 24, 2, 1, 1, 26

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


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

Создано: 28 апреля 2013 13:34
· Личное сообщение · #26

Опередил... 24-7-3-4-26

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


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

Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 28 апреля 2013 15:51 · Поправил: SaNX
· Личное сообщение · #27

Бля, чуваки! Ждите от меня крэкми. Там будет if (str=="pass"), но накрою все вмпротом. Будет очень интересно, крэкми будет очень оригинальным

ЗЫ: если ТС не догнал, объясню: навешивать на крэкми чужие проты - это моветон, который автоматически означает, что крэкми - говно, а аффтар - мудак.

-----
SaNX


| Сообщение посчитали полезным: ZaZa, TryAga1n, -=AkaBOSS=-, DimitarSerg, nick8606, Kindly


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

Создано: 28 апреля 2013 15:53 · Поправил: ZaZa
· Личное сообщение · #28

SaNX пишет:
Там будет if (str=="pass"), но накрою все вмпротом.

Фууу, какая банальщина... Надо так делать:
if (str != "pass")... Вот это нумер )

А смотрел крякми только лишь из-за свободной минуты... Just For Fun )

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




Ранг: 456.3 (мудрец), 340thx
Активность: 0.280.02
Статус: Участник
Android Reverser

Создано: 28 апреля 2013 15:55
· Личное сообщение · #29

ZaZa пишет:
if (str != "pass")... Вот это нумер )

я решил усложнить, сделаю вставку на оссемблере.

Code:
  1. push offset user_string
  2. push offset password
  3. call strcmp
  4. jne ...


никто не сломает

-----
SaNX





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

Создано: 28 апреля 2013 15:57 · Поправил: ZaZa
· Личное сообщение · #30

SaNX пишет:
никто не сломает

Пароль: "Cool_Cr@cker". Угадал?
Автора в бан, тему прикрыть и удалить нафих. Visual Studio удалить, винт отформатировать, компьютер сжечь!

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



. 1 . 2 . >>
 eXeL@B —› Вопросы новичков —› Новая версия CrackMev1.1
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати