Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Изменение байтов ничего не дает
Посл.ответ Сообщение

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

Создано: 17 августа 2005 00:25
· Личное сообщение · #1

Я только начинающий в этом деле и сразу прошу прощение за может быть глупый вопрос, но у меня уже просто накипело. Столкнулся с некоторыми программами (MOV Converter, VideoCleaner и др.), в которых в нужном месте (не буду вдаваться в подробности в каких именно) меняешь, допустим, je на jne и прога как бы зарегистрирована и полностью функционирует, но как только выходишь из "зарегистрированной" программы и запускаешь ее снова она опять просит ввести s/n. Вводишь лубые данные (или вобще ничего не вводишь) и программа опять зарегистрирована. Как сделать так, чтобы не проходить порцидуру регистрации каждый раз? Я еще не умею находить серийники для программ, поэтому пока меняю байты . Буду очень благодарен, если поможете мне разобраться с моей проблемой.




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 августа 2005 00:40
· Личное сообщение · #2

tROJN
Наверняка прога проверяет регистрацию несколько раз... Замена перехода тут - не выход. Надо патчить процедуру проверки. К примеру, процедура должна возвращать в AL единицу при правильном серийнике. Надо сделать, чтобы она возвращала 1 ВСЕГДА. Часто в конце процедуры стоит проверка и после нее два варианта: XOR EAX,EAX (обнуление) или MOV AL,1. Можно заменить XOR.. на MOV AL,1.
ЗЫ: это все типичные варианты, смотри саму прогу.



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

Создано: 17 августа 2005 01:08
· Личное сообщение · #3

Спасибо за ответ, но не получается. Попробовал сделать как ты сказал. Прога (Video Cleaner) ведет себя точно также.



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

Создано: 17 августа 2005 01:21
· Личное сообщение · #4

tROJN
Еще программа может хранить ключи в реестре и при запуске их проверять.
Проверь регмоном.

-----
TBR





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 августа 2005 01:40
· Личное сообщение · #5

tROJN пишет:
Попробовал сделать как ты сказал. Прога (Video Cleaner) ведет себя точно также.

Возможно, ты не там пропатчил. Большая прога?




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 17 августа 2005 05:54
· Личное сообщение · #6

tROJN
Обрати внимание на call'ы перед условным переходом (jne или как там у тебя). Возможно, там и будет проца проверки. Как сказал Ara, ты скорее всего патчишь не саму процедуру проверки, а лишь переход.



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

Создано: 17 августа 2005 06:34
· Личное сообщение · #7

tROJN пишет:
Прога (Video Cleaner)

В программах с такими названиями, а точнее мультимедиа сутью, очень часто используется MFC.
Давай линки, или показывай участок кода который менял (с адресами и стандартными коментами).

-----
Всем привет, я вернулся




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

Создано: 17 августа 2005 07:47
· Личное сообщение · #8

Grey
Grey пишет:
Еще программа может хранить ключи в реестре и при запуске их проверять.
Проверь регмоном.

Regmon-ом я уже проверял это ничего не дало.
Bitfry пишет:
В программах с такими названиями, а точнее мультимедиа сутью, очень часто используется MFC.
Давай линки, или показывай участок кода который менял (с адресами и стандартными коментами).

Она действительно использует MFC. Вот линк на эту прогу download.riverpast.com/download/videocleaner_setup.exe
Вот участок. Кстати, я пользуюсь Olly. Айс для меня пока сложноват.

004523D7 E8 A09B0000 CALL <JMP.&MFC42.#6334>
004523DC 8B1D A4204600 MOV EBX,DWORD PTR DS:[<&KERNEL32.Sleep>] ; kernel32.Sleep
004523E2 6A 32 PUSH 32
004523E4 FFD3 CALL EBX
004523E6 8B8E F8010000 MOV ECX,DWORD PTR DS:[ESI+1F8]
004523EC 8B46 60 MOV EAX,DWORD PTR DS:[ESI+60]
004523EF 8D7E 60 LEA EDI,DWORD PTR DS:[ESI+60]
004523F2 51 PUSH ECX
004523F3 8BCF MOV ECX,EDI
004523F5 FF50 58 CALL DWORD PTR DS:[EAX+58]
004523F8 8B86 FC010000 MOV EAX,DWORD PTR DS:[ESI+1FC]
004523FE 8B17 MOV EDX,DWORD PTR DS:[EDI]
00452400 50 PUSH EAX
00452401 8BCF MOV ECX,EDI
00452403 FF52 78 CALL DWORD PTR DS:[EDX+78]
00452406 6A 32 PUSH 32
00452408 FFD3 CALL EBX
0045240A 6A 00 PUSH 0
0045240C 8BCE MOV ECX,ESI
0045240E E8 699B0000 CALL <JMP.&MFC42.#6334>
00452413 8A86 A0000000 MOV AL,BYTE PTR DS:[ESI+A0]
00452419 84C0 TEST AL,AL
0045241B 74 0D JE SHORT rvemfcut.0045242A - здесь меняю на jne
0045241D 6A 01 PUSH 1
0045241F 8BCE MOV ECX,ESI
00452421 E8 3E9B0000 CALL <JMP.&MFC42.#2645>
00452426 5F POP EDI
00452427 5E POP ESI
00452428 5B POP EBX
00452429 C3 RETN
0045242A 6A 00 PUSH 0
0045242C 6A 00 PUSH 0
0045242E 68 3C704800 PUSH rvemfcut.0048703C ; ASCII "Your activation information is invalid. Please enter again"
00452433 E8 CA9C0000 CALL <JMP.&MFC42.#1200>
00452438 5F POP EDI
00452439 5E POP ESI
0045243A 5B POP EBX
0045243B C3 RETN
0045243C 90 NOP
0045243D 90 NOP
0045243E 90 NOP
0045243F 90 NOP
00452440 6A 07 PUSH 7
00452442 E8 1D9B0000 CALL <JMP.&MFC42.#2645>
00452447 C3 RETN



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

Создано: 17 августа 2005 08:12
· Личное сообщение · #9

А почему JNE, а не просто занопить? Ессно - ты реверсишь джамп. При неправильном коде он считает его правильным и регает программу, а при запуске происходит все наооборот;))

-----
TBR




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

Создано: 17 августа 2005 08:21
· Личное сообщение · #10

Grey пишет:
А почему JNE, а не просто занопить? Ессно - ты реверсишь джамп. При неправильном коде он считает его правильным и регает программу, а при запуске происходит все наооборот;))

Попробовал - нопом тоже работает . Я просто очень мало об этом всём знаю, поэтому и пришел на этот форум. Кто-нибуть уже успел посмотреть эту прогу?



Ранг: 53.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 17 августа 2005 08:52
· Личное сообщение · #11

tROJN пишет:
Кто-нибуть уже успел посмотреть эту прогу?

Я закейгенил ее ;) , патчится там вроде просто, как сказал Ara
Ara пишет:
Надо патчить процедуру проверки. К примеру, процедура должна возвращать в AL единицу при правильном серийнике. Надо сделать, чтобы она возвращала 1 ВСЕГДА. Часто в конце процедуры стоит проверка и после нее два варианта: XOR EAX,EAX (обнуление) или MOV AL,1. Можно заменить XOR.. на MOV AL,1.




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

Создано: 17 августа 2005 09:40 · Поправил: Bitfry
· Личное сообщение · #12

Да, Аra прав, как и почти всегда.

tROJN
Ты не уловил суть действий.
Сначала происходит проверка (обычно одна процедура, бывает большая).
Затем записывается результат проверки (некое значение(я) ). Обычно на выходе из процедуры проверки или чуть выше.
С этим результатом могут работать разные участки кода (отключать или включать функции, выводить наги и т.п.).
Нужно искать не один из участков (как ты делаешь), а место где создаётся результат проверки.

-----
Всем привет, я вернулся




Ранг: 53.0 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 17 августа 2005 11:18
· Личное сообщение · #13

tROJN пишет:
00452413 8A86 A0000000 MOV AL,BYTE PTR DS:[ESI+A0]
00452419 84C0 TEST AL,AL
0045241B 74 0D JE SHORT rvemfcut.0045242A - здесь меняю на jne

в [ESI+A0] результат проверки (скорей всего) значит надо гдето в DS:[ESI+A0] записать 1



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

Создано: 17 августа 2005 19:18
· Личное сообщение · #14

bkslash
bkslash пишет:
Я закейгенил ее ;) , патчится там вроде просто, как сказал Ara

Ничего у меня не получается . Наверно мне не дано.
Кусок кода можешь показать, который генерит серийник? Был бы тебе очень-очень благодарен за это.
Народ, почему так мало статей, где описывается поиск номера с помощью Olly? Все прям помешались на Айсе



Ранг: 53.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 17 августа 2005 19:51 · Поправил: bkslash
· Личное сообщение · #15

tROJN пишет:
Кусок кода можешь показать, который генерит серийник?

Ну там напрямую не генерится, расшифровывается серийник и сверяется с именем, геморой с этим редкостный.
Вкратце про патч, у меня версия 6.5.0.50717, с остальными должно быть аналогично. bp MessageBoxA, вводим что угодно, брякаемся, пару раз ctrl-f9, оказывемся тут:

004523F8 . 8B86 FC010000 MOV EAX,DWORD PTR DS:[ESI+1FC]
004523FE . 8B17 MOV EDX,DWORD PTR DS:[EDI]
00452400 . 50 PUSH EAX
00452401 . 8BCF MOV ECX,EDI
00452403 . FF52 78 CALL DWORD PTR DS:[EDX+78] ; rvemfcut.?SetPasscode@CMpegDice@@UAE_NPBD@Z
00452406 . 6A 32 PUSH 32
00452408 . FFD3 CALL EBX
0045240A . 6A 00 PUSH 0
0045240C . 8BCE MOV ECX,ESI
0045240E . E8 699B0000 CALL <JMP.&MFC42.#6334>
00452413 . 8A86 A0000000 MOV AL,BYTE PTR DS:[ESI+A0]
00452419 . 84C0 TEST AL,AL
0045241B . 74 0D JE SHORT rvemfcut.0045242A
0045241D . 6A 01 PUSH 1
0045241F . 8BCE MOV ECX,ESI
00452421 . E8 3E9B0000 CALL <JMP.&MFC42.#2645>
00452426 . 5F POP EDI
00452427 . 5E POP ESI
00452428 . 5B POP EBX
00452429 . C3 RETN
0045242A > 6A 00 PUSH 0
0045242C . 6A 00 PUSH 0
0045242E . 68 3C704800 PUSH rvemfcut.0048703C ; ASCII "Your activation information is invalid. Please enter again"
00452433 . E8 CA9C0000 CALL <JMP.&MFC42.#1200>
00452438 . 5F POP EDI
00452439 . 5E POP ESI
0045243A . 5B POP EBX
0045243B . C3 RETN

Вводим другой серийник (если введен такой же он не сверяется) и заходим в CALL DWORD PTR DS:[EDX+78] , там заходим
0045120C |. FF90 80000000 CALL DWORD PTR DS:[EAX+80] ; rvemfcut.?SideEffectPasscodeChanged@CMpegDice@@UAEXXZ

А там - в
00451002 |. E8 E916FEFF CALL rvemfcut.?ValidateLicensed@CMpegDic>

Это и есть проверка. Там в начале функции вписываем
mov al,1
retn 4

Вроде должно работать.



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

Создано: 17 августа 2005 22:39
· Личное сообщение · #16

bkslash пишет:
Вкратце про патч, у меня версия 6.5.0.50717, с остальными должно быть аналогично.

Неа, не аналогично. У меня 6.5.2.50802 и как ты говорил выше не срабатывает. Может быть, конечно, это из-за кривизны моих рук, но всё равно не работает. Хотя пытался делать как ты показал. . Эх, как бы было здорово, если бы давались более подробные действия для кряка прог. Но всё равно спасибо.



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

Создано: 17 августа 2005 22:58
· Личное сообщение · #17

Еще вопросик - что такое ntdll и mfc42? Всмысле за что они отвечают. Частенько с ними сталкиваюсь, а что они делают - без понятия. Простити новичка за, может быть, глупые вопросы. Но я на самом деле мечтаю научиться ломать проги. А спросить больше не у кого.




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 17 августа 2005 23:03
· Личное сообщение · #18

tROJN
Заходишь в функцию ValidateLicensed
идешь в самый её конец, видишь:

0043215B |. C78424 5C10000>MOV DWORD PTR SS:[ESP+105C],-1
00432166 |. E8 2D8A0200 CALL <rvemfcut.CString::~CString(void)> ; JMP to MFC42.#800
0043216B >|> 32 C0 XOR EAX, EAX (1)
0043216D \.^E9 EAFBFFFF JMP <rvmfcut.loc_10001D5C>

меняешь там где (1) на MOV AL, 1




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 17 августа 2005 23:06
· Личное сообщение · #19

Paxan пишет:
Заходишь в функцию ValidateLicensed

Тока идиот мог так назвать функцию... Странно, что там серийник не валяется в открытом виде.




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 17 августа 2005 23:31
· Личное сообщение · #20

tROJN
ntdll - загрузчик для winnt/winxp. в нём распологается native api.
mfc42/mfcxx - обёртка от майкрософта над winapi, набор стандартных классов, ускоряющих разработку приложений. mfc - microsoft foundation classes
прежде чем браться за кряки изучи вначале простейшее программирование

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





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

Создано: 18 августа 2005 00:32
· Личное сообщение · #21

В данном случае достаточно пропатчить всего один байт в dll-ке rvemfcut.dll
3D4E490100 cmp eax, 0001494E
0F8453010000 je 10001D5A; заменяем 84 на 85 и все (для версии 6.5.3.)



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

Создано: 18 августа 2005 06:57
· Личное сообщение · #22

tROJN пишет:
Но я на самом деле мечтаю научиться ломать проги.

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


tROJN, подозреваю, что ты не знаком с Асмом на должном уровне.
Тебе начать нужно с Дневников Чайника. Уже есть Чтива 0 - как раз для тебя. Пока временно тут:
http://bitfry.narod.ru/
Затем прочесть "Теоретические основы крэкинга":
http://www.exelab.ru/art/tok.php
Далее можно пройти уроки Iczelion’a самостоятельно.

На всё это нужно дней 40 максимум. Зато потом будешь ломать как семечки подобные простенькие триалы.
Да, и конечно не забудь, как следует прочесть FAQ!

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

Так в прогах с MFC постоянно такое. Сколько не смотрел всё «менеджер лицензии» а в нём чуть ли не «правильный ключ – съешь меня».


-----
Всем привет, я вернулся





Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 18 августа 2005 11:53
· Личное сообщение · #23

tROJN
Кстати я как-то уроки Iczelion’a в chm пожал, получилось очень удобно. Если нужно - пиши в личку. Сам chm - 723 Кб, с сырцами программ - 1 254 Кб.

-----
Get busy living or get busy dying ©




Ранг: 53.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 18 августа 2005 12:04
· Личное сообщение · #24

Getorix пишет:
Кстати я как-то уроки Iczelion’a в chm пожал, получилось очень удобно. Если нужно - пиши в личку. Сам chm - 723 Кб, с сырцами программ - 1 254 Кб.

Так на васме http://wasm.ru/docs/1/iczelion.zip ж есть.




Ранг: 209.5 (наставник), 42thx
Активность: 0.10
Статус: Участник
WinCE ARM M@sTeR

Создано: 18 августа 2005 12:23
· Личное сообщение · #25

bkslash пишет:
Так на васме ж есть

Ого, крутяк. А я чет не нашел этого архива на васме. Нопашамам было
Сенкс.

-----
Get busy living or get busy dying ©




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

Создано: 18 августа 2005 19:35
· Личное сообщение · #26

Всем спасибо. Значит начнем проходить углубленный курс Асма .


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


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