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

 eXeL@B —› Вопросы новичков —› Помогите со взломом WinAMP 5.111
. 1 . 2 . >>
Посл.ответ Сообщение

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

Создано: 30 января 2007 13:11
· Личное сообщение · #1

ссылка на жертву http://download.nullsoft.com/winamp/client/winamp51_pro.exe http://download.nullsoft.com/winamp/client/winamp51_pro.exe
Итак я хочу взломать WINamp и мне требуется ваша помощ. Winamp 5.111
В ходе отладки программы я выяснил что программа проверяет ключи в ветке HKLMSoftwareNullsoftWinamp
regname и regkey. Прочитав значение regname прога генерить свой куплун и сравнивает с тем что в значении реестра.
Если не совпало то в окне регистрации в поле серийника записано Invalid и т.д. Это
я выяснил банальным битхакингом перехода на ошибку регистрации.
дальше. Между GetDlgItemTextA и MessageBoxA(Invalidregkey) есть два вызова. Вопрос какой из них копать?
В первом есть такой участок
0041AC87 |> 8D743D D4 /LEA ESI,DWORD PTR SS:[EBP+EDI-2C]
0041AC8B |. 0FBE06 |MOVSX EAX,BYTE PTR DS:[ESI]
0041AC8E |. 50 |PUSH EAX ; /StringOrChar
0041AC8F |. FF15 F4544600 |CALL DWORD PTR DS:[<&USER32.CharUpperA>>; CharUpperA
0041AC95 |. 3C 41 |CMP AL,41
0041AC97 |. 7C 18 |JL SHORT winamp.0041ACB1
0041AC99 |. 3C 5A |CMP AL,5A
0041AC9B |. 7F 14 |JG SHORT winamp.0041ACB1
0041AC9D |. 0FBEC0 |MOVSX EAX,AL
0041ACA0 |. 8D4438 BF |LEA EAX,DWORD PTR DS:[EAX+EDI-41]
0041ACA4 |. 6A 1A |PUSH 1A
0041ACA6 |. 99 |CDQ
0041ACA7 |. 59 |POP ECX
0041ACA8 |. F7F9 |IDIV ECX
0041ACAA |. 80C2 41 |ADD DL,41
0041ACAD |> 8816 |MOV BYTE PTR DS:[ESI],DL
0041ACAF |. EB 24 |JMP SHORT winamp.0041ACD5
0041ACB1 |> 3C 30 |CMP AL,30
0041ACB3 |. 7C 19 |JL SHORT winamp.0041ACCE
0041ACB5 |. 3C 39 |CMP AL,39
0041ACB7 |. 7F 15 |JG SHORT winamp.0041ACCE
0041ACB9 |. 8B4D 08 |MOV ECX,DWORD PTR SS:[EBP+8]
0041ACBC |. 0FBEC0 |MOVSX EAX,AL
0041ACBF |. 8D4408 D0 |LEA EAX,DWORD PTR DS:[EAX+ECX-30]
0041ACC3 |. 6A 0A |PUSH 0A
0041ACC5 |. 99 |CDQ
0041ACC6 |. 59 |POP ECX
0041ACC7 |. F7F9 |IDIV ECX
0041ACC9 |. 80C2 61 |ADD DL,61
0041ACCC |.^EB DF |JMP SHORT winamp.0041ACAD
0041ACCE |> 3C 2D |CMP AL,2D
0041ACD0 |. 75 03 |JNZ SHORT winamp.0041ACD5
0041ACD2 |. C606 2F |MOV BYTE PTR DS:[ESI],2F
0041ACD5 |> 8345 08 1B |ADD DWORD PTR SS:[EBP+8],1B
0041ACD9 |. 47 |INC EDI
0041ACDA |. 807C3D D4 00 |CMP BYTE PTR SS:[EBP+EDI-2C],0
0041ACDF |.^75 A6 JNZ SHORT winamp.0041AC87
Что это? я чуствую что вроде бы оно но где сдесь серийник?
Помогите разобраться...



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

Создано: 30 января 2007 15:23
· Личное сообщение · #2

учи крипто, врятли у тебя с нахрапа получится сразу сломать винамп (правда ели мат часть отлично знаешь, то получится)

-----
Само плывет в pуки только то, что не тонет.




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

Создано: 31 января 2007 01:55
· Личное сообщение · #3

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




Ранг: 420.3 (мудрец)
Активность: 0.240
Статус: Участник

Создано: 31 января 2007 02:15
· Личное сообщение · #4

Есть готовый кейген с сырками http://canterwood.online.fr/shared/keygens/Winamp.v5.0.plus.keymaker.incl.source-NGEN.zip Разбирайся.

-----
Сколько ни наталкивали на мысль – все равно сумел увернуться




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

Создано: 31 января 2007 02:36
· Личное сообщение · #5

Спасибо, значит это действительно генерация серийного номера? А реально ли сделать битхак чтоб вводить любой серийник?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 31 января 2007 02:53
· Личное сообщение · #6

1. Глянь сорс кейгена от Canterwood
2. битхак возможен, достаточно пропатчить 1 байт на выходе из процедуры проверки серийника:
заменить
and d[Registered],0
на
or d[Registered],1

-----
EnJoy!




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

Создано: 01 февраля 2007 12:22
· Личное сообщение · #7

Чтото я не понял... Давайте с начала. Тот листинг что я привёл в начале статьи это действительно генерация кода из имени или нет? Толко просьба отвечать по существу. Дальше-как найти строки and d[Registered],0? по каким параметрам?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 02 февраля 2007 04:56
· Личное сообщение · #8

Negor
по существу:
для начала посмотри сорс кейгена от Canterwood'a
если ты настолько ленив, что не всостоянии потратить несколько часов жизни за копанием файла в IDA, я могу дать тебе всю информацию, но только будет ли от этого толк?
кусок кода sha1 или base-конвертера - это действительно генерация кода из имени или нет?

-----
EnJoy!




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

Создано: 04 февраля 2007 06:10
· Личное сообщение · #9

Jupiter
А может давай сделаем так:
Ты мне скажеш с чего начинать взлом, я буду продвигатся по мере своего интелекта и задавать тебе вопросы на тех местах где моего интелекта не хватит?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 04 февраля 2007 22:40
· Личное сообщение · #10

Negor пишет:
Ты мне скажеш с чего начинать взлом,

Так ведь уже ведь пять раз сказано : учите Матчасть. Как можно подсказать, если ты говоришь на другом языке Не удержусь и метафору изображу : ребята подскажите, как Мерседес чинить, а учебник по ремонту автомобиля я потом буду читать.



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

Создано: 07 февраля 2007 02:19
· Личное сообщение · #11

tundra37 пишет:
Так ведь уже ведь пять раз сказано : учите Матчасть

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




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 07 февраля 2007 04:01
· Личное сообщение · #12

матчасть+думать+копить знания..а просто прочитав тутор и тупо повторив все - мало чему научишься

-----
Тут не могла быть ваша реклама




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

Создано: 07 февраля 2007 09:20
· Личное сообщение · #13

Не надо мне расказывать Я уверен, что больше половины сдешних кракеров первые разы как раз тупо повторяли всё как написано в туторе, а не учили ассемблер или матчасть. И вобще, как учится мне буду решать я. Если вы мне не хотите в этом помочь, не надо. Не ужели я прошу чегото сверхестественного?Jupiter отказался обьяснить откуда он взял Registered. Из его ответа я так понял что в IDA. У меня не получилось. В списке функций такого не нашлось. Я же никого не просил давать мне готовый кейген, а попросил указать на ошибки в моих рассуждениях. Вроде самый классный портал...




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 07 февраля 2007 10:24 · Поправил: HoBleen
· Личное сообщение · #14

Negor пишет:
Я уверен, что больше половины сдешних кракеров первые разы как раз тупо повторяли всё как написано в туторе, а не учили ассемблер или матчасть.

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

Negor пишет:
Registered

Названная по смыслу переменная. Найди в асм листинге команду "and d[SomeMemory],0", она должна идти выполняться после того, как стало известно, что ключ неверен.

lord_Phoenix пишет:
матчасть+думать+копить знания..

В этом случае лучший совет ИМХО




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 07 февраля 2007 21:55
· Личное сообщение · #15

Negor пишет:
Я же никого не просил давать мне готовый кейген, а попросил указать на ошибки в моих рассуждения

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

-----
Тут не могла быть ваша реклама




Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 07 февраля 2007 22:31
· Личное сообщение · #16

Negor пишет:
извлекли весь свой талант из девятисотлистового учебника по ассемблеру.

Передставь себе ДА! В 198Х году у меня была коллективная персоналка на базе 286 проца и неработающий компилятор с Фортрана. Точнее тестовые проги он ел, а вот нужные для дела нет.
Интернета тогда не было, BBS может и была, но мы про нее не знали. Из инструментов - debug.com, из документации то, что ребята с запада привезли. И все прекрасно ломали, точнее реверсили. Ломать тогда ничего не нужно было - привозили либо ломанное, либо выдавался цветной мигающий NAG-экран на входе, который мы игнорировали.
Кстати я и не призывал тебя 900 листов читать. Просто, чтобы понять советы нужна минимальная база - я похоже не ошибся в оценках - у тебя ее нет.



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

Создано: 08 февраля 2007 12:29
· Личное сообщение · #17

lord_Phoenix пишет:
хех, твои рассуждения тогда одна большая ошибка..

Т. е. система работает не так:
Negor пишет:
рограмма проверяет ключи в ветке HKLMSoftwareNullsoftWinamp
regname и regkey. Прочитав значение regname прога генерить свой куплун и сравнивает с тем что в значении реестра.
Если не совпало то в окне регистрации в поле серийника записано Invalid и т.д.

Только не надо моралей.
Спасибо товарищу HoBleen за обьяснение.




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 09 февраля 2007 02:00
· Личное сообщение · #18

Negor пишет:
Спасибо товарищу HoBleen за обьяснение.

ага, вот только он ошибся, винамп не сравинвает введенный код с неправильным, он "преобразовывает" введенный и првоеряет некоторые условия ;)

-----
Тут не могла быть ваша реклама




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

Создано: 09 февраля 2007 02:35
· Личное сообщение · #19

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




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 09 февраля 2007 02:36 · Поправил: HoBleen
· Личное сообщение · #20

lord_Phoenix
Ну если учесть, что я саму программу и не смотрел, а ориентируюсь исключительно по постам...




Ранг: 353.0 (мудрец)
Активность: 0.370
Статус: Участник
resreveR

Создано: 09 февраля 2007 03:13
· Личное сообщение · #21

HoBleen
:D ты только запутал топикстартера

-----
Тут не могла быть ваша реклама





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 13 февраля 2007 04:55
· Личное сообщение · #22

Negor
если тебе для следующего шага нужна полная инфа, которая тебе поможет двигаться дальше, то я могу дать те конкретные данные по текущей версии 5.32 Pro
download.nullsoft.com/winamp/client/winamp532_pro.exe

-----
EnJoy!




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

Создано: 14 февраля 2007 01:06
· Личное сообщение · #23

Jupiter
Ok, давай я попробую




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 февраля 2007 00:27
· Личное сообщение · #24

итак, рассматриваем Winamp.exe версии 5.32.1003
грузишь файл в дизассемблер/отладчик, идёшь на VA 414691 и видишь:

and dword ptr [0042823D0],0
leave
retn


и меняешь на:
or dword ptr [0042823D0],1

сохраняешь файл. после этого винамп принимает любой серийник как родной.

домашнее задание: разобраться с командами and и or, понять, как они работают и что делают, в зависимости от параметров

-----
EnJoy!




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

Создано: 15 февраля 2007 06:45
· Личное сообщение · #25

Спасиба тебе!!!Дамашку сделаю, а ты правериш?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 февраля 2007 06:55
· Личное сообщение · #26

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

-----
EnJoy!




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

Создано: 17 февраля 2007 04:31 · Поправил: Negor
· Личное сообщение · #27

Вобщем я разобрался со всем что тут наговорили... кроме конечно самого алгоритма создания кода из имени. Т.е. я понял что там из кода ещё вроде хэш создаётся и потом заносится в реестр. Вобщем надо что-то по криптографии я так понял искать.... есть что-то конкретное или читать всё подряд. Ну и с and or я тоже разобрался. Но почему нельзя использовать mov?




Ранг: 240.5 (наставник)
Активность: 0.190
Статус: Участник
Author of ACKiller

Создано: 17 февраля 2007 04:43
· Личное сообщение · #28

Negor пишет:
Но почему нельзя использовать mov?

Можно, но не нужно)) размер мува больше размера and, or или xor, если надо занести 1 или 0.

Именно поэтому вместо
mov eax,1
лучше написать
xor eax,eax
inc eax



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

Создано: 17 февраля 2007 05:02
· Личное сообщение · #29

Окей,с мувом разобрались... а с алгоритмом шифрования разберусь по сыркам кейгена) По криптографии советы будут?




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 февраля 2007 06:58
· Личное сообщение · #30

Negor пишет:
По криптографии советы будут?

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

-----
EnJoy!



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