Сейчас на форуме: ==DJ==[ZLO], Magister Yoda, Rio (+5 невидимых)

 eXeL@B —› Основной форум —› MagicLines
Посл.ответ Сообщение

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

Создано: 10 декабря 2004 02:40
· Личное сообщение · #1

Есть прога с 30-дневным ограничением. Перевёл время на месяц

вперёд. Вылазит сообщение что период триала истёк и нужно

зарегистрировать программу. Написана на С++. И как я понимаю

получает дату через ф-цию GetLocalTime. Открыл вин32дасм, нашёл

вызов этой ф-ции:

:0041118C 81ECCC000000 sub esp, 000000CC
:00411192 8D45F0 lea eax, dword ptr [ebp-10]
:00411195 50 push eax

* Reference To: KERNEL32.GetLocalTime, Ord:011Bh
|
:00411196 FF1530E14200 Call dword ptr [0042E130]
:0041119C 8D45E0 lea eax, dword ptr [ebp-20]
:0041119F 50 push eax

* Reference To: KERNEL32.GetSystemTime, Ord:015Dh
|
:004111A0 FF15B0E14200 Call dword ptr [0042E1B0]


Занопил вот эти строки:
:00411195 50 push eax

:00411196 FF1530E14200 Call dword ptr [0042E130]

Программа вродже бы начинает грузиться, но вылетает сообщение об

ошибке Windows. Что мне с ней сделать??

p.s. я ещё новичок так что сильно не ругать если что не так =)
p.p.s программа (точнее не программа а небольшая игрушка)
называется MagicLines (http://www.agentix.org) если у кого время
есть можете посмотреть




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

Создано: 10 декабря 2004 02:53
· Личное сообщение · #2

Нужно нопить не сам вызов апи.
Надо искать процедуру проверки.
На www.int3.net есть статьи как раз по снятию триала. Почитай.



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

Создано: 10 декабря 2004 03:12
· Личное сообщение · #3

А как найти эту процедуру проверки?

p.s. статьи почитаю...



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

Создано: 10 декабря 2004 08:59
· Личное сообщение · #4

Fang пишет:
А как найти эту процедуру проверки?

0040E07D . 52 PUSH EDX
0040E07E . 50 PUSH EAX
0040E07F . E8 AC060000 CALL _mlines.0040E730
0040E084 . 83C4 08 ADD ESP,8
0040E087 . 84C0 TEST AL,AL
0040E089 . 75 11 JNZ SHORT _mlines.0040E09C
0040E08B . 6A 10 PUSH 10
0040E08D . 68 9C854300 PUSH _mlines.0043859C ; ASCII "Registrator"
0040E092 . 68 90854300 PUSH _mlines.00438590 ; ASCII "Bad name!"
0040E097 . E9 3D010000 JMP _mlines.0040E1D9
0040E09C > 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
0040E0A0 . 8D4C24 14 LEA ECX,DWORD PTR SS:[ESP+14]
0040E0A4 . 51 PUSH ECX
0040E0A5 . 52 PUSH EDX
0040E0A6 . E8 65050000 CALL _mlines.0040E610
0040E0AB . 83C4 08 ADD ESP,8
0040E0AE . 84C0 TEST AL,AL
0040E0B0 . 0F84 17010000 JE _mlines.0040E1CD
0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
0040E0BE . 3BC1 CMP EAX,ECX
0040E0C0 0F85 07010000 JNZ _mlines.0040E1CD
0040E0C6 . 6A 40 PUSH 40
0040E0C8 . 68 80854300 PUSH _mlines.00438580 ; ASCII "Registration"
0040E0CD . 68 4C854300 PUSH _mlines.0043854C ; ASCII " Registration successful.
Thank you for support!"
0040E0D2 . 8BCD MOV ECX,EBP



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 10 декабря 2004 09:28
· Личное сообщение · #5

Fang
Помню я так же как и ты тупил, в смысле нопил не то =)
Ну, ничего, разберёшся...

-----
once you have tried it, you will never want anything else





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

Создано: 10 декабря 2004 11:49
· Личное сообщение · #6

а что если инсайд CALL _mlines.0040E730 задобяжить 33 c0 40 c3?..




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

Создано: 10 декабря 2004 11:51
· Личное сообщение · #7

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



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

Создано: 11 декабря 2004 04:54
· Личное сообщение · #8

а что если инсайд CALL _mlines.0040E730 задобяжить 33 c0 40 c3?..


Как это сделать? Я сделал так: перешёл на адрес 40Е730 и в конце перед ret написал xor eax,eax, inc eax, retn Но всё равно ничего не работает Может я не туда записал?

DMD а у тебя получилась её зарегить? ты ведь скачал вроде...



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

Создано: 11 декабря 2004 05:26
· Личное сообщение · #9

Fang пишет:
а у тебя получилась её зарегить? ты ведь скачал вроде...

я успел уделить ей только минут 15...
Но обещаю посмотреть внимательно... дам знать!





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

Создано: 11 декабря 2004 05:35
· Личное сообщение · #10

Fang
кстати, ты обрати внимание на содержимое этой процедуры:
0040E0A6 . E8 65050000 CALL _mlines.0040E610
Но не обольщайся... потому что самое занимательное
в проверке это вот эти команды:
0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
0040E0BE . 3BC1 CMP EAX,ECX
Успехов!




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

Создано: 11 декабря 2004 06:35
· Личное сообщение · #11

DMD пишет:
0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
0040E0BE . 3BC1 CMP EAX,ECX
Успехов!


Там нет сер.номера (



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

Создано: 13 декабря 2004 01:32
· Личное сообщение · #12

Fang пишет:
Там нет сер.номера (

Смелое заявление! Давай разберем по шагам:

этот кусок кода очевиден и по нахождению и по содержанию:
1.1)
0040E0A4 . 51 PUSH ECX
0040E0A5 . 52 PUSH EDX
0040E0A6 . E8 65050000 CALL dumped_A.0040E610 ; ! ! !
0040E0AB . 83C4 08 ADD ESP,8
0040E0AE . 84C0 TEST AL,AL
0040E0B0 . 0F84 17010000 JE dumped_A.0040E1CD
0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
0040E0BE . 3BC1 CMP EAX,ECX
0040E0C0 . 0F85 07010000 JNZ dumped_A.0040E1CD
0040E0C6 . 6A 40 PUSH 40
0040E0C8 . 68 80854300 PUSH dumped_A.00438580 ; ASCII "Registration"
0040E0CD . 68 4C854300 PUSH dumped_A.0043854C ; ASCII " Registration successful. Thank you for support!"
0040E0D2 . 8BCD MOV ECX,EBP
0040E0D4 . E8 F53C0100 CALL dumped_A.00421DCE
0040E0D9 . 8B85 50010000 MOV EAX,DWORD PTR SS:[EBP+150]
0040E0DF . 85C0 TEST EAX,EAX
0040E0E1 . 0F84 DD000000 JE dumped_A.0040E1C4

1.2) автоматически погружаемся в CALL dumped_A.0040E610
0040E69E |. 68 00F64200 PUSH dumped_A.0042F600 ; ASCII "MGC20-A02120"
0040E6A3 |. 8D5424 10 LEA EDX,DWORD PTR SS:[ESP+10]
.
.
0040E6D9 |> 68 10F64200 PUSH dumped_A.0042F610 ; ASCII "NGC11-A10201"
0040E6DE |. 8D4424 10 LEA EAX,DWORD PTR SS:[ESP+10]

Это два единственных SN, которые позволяют пройти проверку
0040E0A6 . E8 65050000 CALL _mlines.0040E610
0040E0AB . 83C4 08 ADD ESP,8
0040E0AE . 84C0 TEST AL,AL
Можешь сам убедиться в отладчике
Но я уже отмечал, что проверка несколько "глубже"
0040E0B6 . 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]
0040E0BA . 8B4C24 18 MOV ECX,DWORD PTR SS:[ESP+18]
0040E0BE . 3BC1 CMP EAX,ECX

Но это не страшно..

Если тебя раздражает "иллюминация" в шапке окна программы:
2.1)
00407F78 . 6A 2A PUSH 2A ; -> PUSH 20
00407F7A . 8D4C24 0C LEA ECX,DWORD PTR SS:[ESP+C]
00407F7E . E8 09BF0100 CALL dumped_A.00423E8C

и

2.2)
004382E4 20 55 6E 72 65 67 69 73 74 65 72 65 64 21 00 00 Unregistered!..
|
00

Запуск после окончания "триала"
2.3.A)
0040D1FA . 57 PUSH EDI
0040D1FB . E8 10180000 CALL dumped_A.0040EA10
0040D200 . 83C4 04 ADD ESP,4
0040D203 . 84C0 TEST AL,AL
0040D205 75 37 JNZ SHORT dumped_A.0040D23E ; -> JN
0040D207 . 8D8C24 9401000>LEA ECX,DWORD PTR SS:[ESP+194]

или

2.3.B)
0040EB1B |. 74 09 JE SHORT dumped_A.0040EB26
0040EB1D |. 32C0 XOR AL,AL
0040EB1F |. 5F POP EDI
0040EB20 |. 5E POP ESI
0040EB21 |. 5D POP EBP
0040EB22 |. 83C4 24 ADD ESP,24
0040EB25 |. C3 RETN
0040EB26 |> 8B46 10 MOV EAX,DWORD PTR DS:[ESI+10]
0040EB29 |. 85C0 TEST EAX,EAX
0040EB2B |. 74 09 JE SHORT dumped_A.0040EB36
0040EB2D |. 32C0 XOR AL,AL ; -> mov al,1
0040EB2F |. 5F POP EDI
0040EB30 |. 5E POP ESI
0040EB31 |. 5D POP EBP
0040EB32 |. 83C4 24 ADD ESP,24
0040EB35 |. C3 RETN

Вот и все.

Осталось (как домашнее задание): при загрузке сохраненной игры появляется окно с напоминанием о регистрации..
Жмем просто "ОК".. но можно это окно и "удалить"...

Если что будет непонятно - пиши в почту. Пообщаемся!

Успехов тебе!

DMD
ps. могу прислать более старый вариант этой же игрушки.. оценишь...




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

Создано: 13 декабря 2004 03:39
· Личное сообщение · #13

DMD Спасибо тебе!
С надписью в шапке всё понятно, убрал.
А как ты нашёл:
0040D203 . 84C0 TEST AL,AL
0040D205 75 37 JNZ SHORT dumped_A.0040D23E ; -> JN
0040D207 . 8D8C24 9401000>LEA ECX,DWORD PTR SS:[ESP+194]
запуск после окончания триала? Хотелось бы просто понять в каком направлении надо мыслить при взломе подобных прог.



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

Создано: 13 декабря 2004 03:59
· Личное сообщение · #14

Fang пишет:
А как ты нашёл:


Ну на счет "подобных" - это ты опять слегка "горячишься".
Эта проммулина - достаточно простенький случа`й..

а мыслить можно в двух направлениях:
1. трассировка - по-шаговое выполнения программы в отладичке (именно поэтому этот пример - простенький на трассировку ушло мин 15-20)
2. "вылавливать" massegebox`ы и окна...(через API)

Кстати, ты заметил что триал можно убирать по-разному?
Это и есть ответ на твой вопрос: фантазия и опыт тебе помогут...


ну что, прислать старушку? а?



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

Создано: 13 декабря 2004 05:10
· Личное сообщение · #15

Fang

Я чуть-чуть в тексте опечатался:
это было в оригинальном варианте .exe
0040D205 JE SHORT dumped_A.0040D23E
а это должно быть для продолжения работы...
0040D205 75 37 JNZ SHORT dumped_A.0040D23E

сорри. . бывает..



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

Создано: 13 декабря 2004 05:18
· Личное сообщение · #16

DMD пишет:
Осталось (как домашнее задание): при загрузке сохраненной игры появляется окно с напоминанием о регистрации..
Жмем просто "ОК".. но можно это окно и "удалить"...


Сделал я домашнее задание
:00408AAB 7423 je 00408AD0 -> je - jne

У меня стало что то получаться =)) спасибо тебе ещё раз



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

Создано: 13 декабря 2004 05:22
· Личное сообщение · #17

Fang пишет:
У меня стало что то получаться =)) спасибо тебе ещё раз

Был рад помочь!

Если что - пиши в почту.
Успехов!




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

Создано: 21 декабря 2004 08:12
· Личное сообщение · #18

Fang
Было немного свободного времени - получился "прилизанный"
вариант .exe со всеми исправлениями.
если нужно - пиши в почту - пришлю!
Успехов!


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


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