Посл.ответ |
Сообщение |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 31 октября 2004 05:29 · Личное сообщение · #1
Люди, кто знает как работает функция GetLocalTime...?
| Сообщение посчитали полезным: |
|
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 31 октября 2004 05:48 · Личное сообщение · #2
Какой-то пространный вопрос, дизассемблируй функцию и исследуй. Или ты хотел пример использования?
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 31 октября 2004 06:16 · Личное сообщение · #3
Нет, я хотел узнать более конкретно: каким образом она генерирует дату, что я не врубаюсь в сгенеренный ею eax. Не могу связать - как же она генерит дату.
А смысл вот в чём: хочу хакнуть антихакер касперского. Там блин не серийником защищено (было бы плёвое дело), а ключом. Срок ключа кончился - вот и всё.
Поставил бряк на GetLocalTime, там теперь нужно заменить её возвращаемое значенме на постоянную, допустим 2000 год... типа ключ ещё не истёк. И не истечёт никогда ...
| Сообщение посчитали полезным: |
 Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 31 октября 2004 06:20 · Личное сообщение · #4
Nikolka
The GetLocalTime function retrieves the current local date and time.
VOID GetLocalTime(
LPSYSTEMTIME lpSystemTime // address of system time structure
);
Parameters
lpSystemTime
Points to a SYSTEMTIME structure to receive the current local date and time.
Return Values
This function does not return a value.
| Сообщение посчитали полезным: |
 Ранг: 266.8 (наставник), 5thx Активность: 0.22↘0.03 Статус: Участник very WELL :)
|
Создано: 31 октября 2004 06:21 · Личное сообщение · #5
Nikolka пишет:
хочу хакнуть антихакер касперского
OutPost лучше =)
| Сообщение посчитали полезным: |
Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник
|
Создано: 31 октября 2004 08:02 · Личное сообщение · #6
У тебя есть ключ, пусть даже и истекший, ты можешь узнать, где в ключе срок (мне кажется, это не так трудно). Или этот ключ в блэк-листе, такое тоже может быть, если с этим ключом у тебя прога ни разу не работала.
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
Ранг: 111.4 (ветеран) Активность: 0.06↘0 Статус: Участник
|
Создано: 31 октября 2004 08:20 · Личное сообщение · #7
Bitfry
В ключе наверняка есть дата истечения.. тока что это тебе даст -).. ты же не станешь там менять дату и думать, что прога будет работать и дальше  ..
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 31 октября 2004 09:28 · Поправил: Asterix · Личное сообщение · #8
Nikolka
Не знаю каковы твои познания в API кодинге и в ассемблере, но функция GetLocalTime ничего в eax не возвращает, а пример использования вот:
.486
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib user32.lib
includelib kernel32.lib
.DATA
szCaption db "LocalTime",0
ALIGN DWORD
szFormat db "%s %02u %04u at %02u:%02u:%02u",0
ALIGN DWORD
month db "Jan",0
db "Feb",0
db "Mar",0
db "Apr",0
db "May",0
db "Jun",0
db "Jul",0
db "Aug",0
db "Sep",0
db "Oct",0
db "Nov",0
db "Dec",0
.DATA?
ALIGN DWORD
_st SYSTEMTIME <>
ALIGN DWORD
buffer db 128 dup (?)
.CODE
ALIGN DWORD
start:
mov ebx, OFFSET _st
invoke GetLocalTime, ebx
assume ebx:ptr SYSTEMTIME
xor eax, eax
mov ax, [ebx].wSecond
push eax ; 1
mov ax, [ebx].wMinute
push eax ; 2
mov ax, [ebx].wHour
push eax ; 3
mov ax, [ebx].wYear
push eax ; 4
mov ax, [ebx].wDay
push eax ; 5
mov ax, [ebx].wMonth
lea eax, [month-4+eax*4]
push eax ; 6
assume ebx:nothing
push OFFSET szFormat ; 7
mov esi, OFFSET buffer
push esi ; 8
call wsprintf
add esp, (8 * SIZEOF DWORD)
invoke MessageBox, NULL, esi, OFFSET szCaption, MB_OK or MB_ICONINFORMATION
invoke ExitProcess, 0
End start
_417079146__LocalTime.exe
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 02 ноября 2004 05:14 · Личное сообщение · #9
Нет, ключ я уже просматривал, исследовал - дата истечения зашита и зашифрована.
Кстати, пока с этим будет пауза, т.к. тут оказалась проверка CRC. Пока придумать ничего не могу. Пока. Сообщение (о изменениях в файле) не ловится никак... Буду думать.
А Астериксу пасиба... Как и всем вам...
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.04↘0 Статус: Участник
|
Создано: 02 ноября 2004 07:03 · Поправил: Man1ac · Личное сообщение · #10
Nikolka пишет:
Кстати, пока с этим будет пауза, т.к. тут оказалась проверка CRC. Пока придумать ничего не могу.
bpx ReadFile
bpx CreateFileA
Думаю больше ничего не придумаешь с CRC  Прога сама себя считывает в буффер одной из этих функций и потом производит циклическое вычисление хэша примерно так:
crc32= crc_table[(crc32^ (*buffer++)) & 0xFF]
Ну а потом: if(crc32!=hash) bad_guy(...); Конечно, это самый простой способ =)
Так что бряки в руки и вперёд
| Сообщение посчитали полезным: |
 Ранг: 199.6 (ветеран), 12thx Активность: 0.1↘0 Статус: Участник www.uinc.ru
|
Создано: 02 ноября 2004 11:05 · Личное сообщение · #11
> Конечно, это самый простой способ =)
Канешна, поэтому все нормальные люди используют цифровую подпись.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.04↘0 Статус: Участник
|
Создано: 02 ноября 2004 13:49 · Поправил: Man1ac · Личное сообщение · #12
DrGolova
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 02 ноября 2004 20:31 · Личное сообщение · #13
> Прога сама себя считывает в буффер одной из этих функций
Да нет, с помощью CreateFile ничего никуда не считывается ;)
Либо ReadFile, либо MMF, т.е. MapViewOfFile.
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0=0 Статус: Участник
|
Создано: 03 ноября 2004 07:12 · Личное сообщение · #14
Люди, не мучайтесь! После того сообщения на форуме прошло 40 мин. и CRC был хакнут элементарно...
Т.к. сообщение не могло словиться обычными методами, то пришлось искать эту строчку в дизассемблере уже в 100 раз. После того, как я понял - WinDASM с русским не дружит дело было в шляпе: загружаю прогу Resourse Hacker. Ищу эту строчку, меняю на какой-нить английский текст (типа Vremja vashe isteklo), сохраняю, дизасемблю. Строчка найдена.
Смотрю прямо перед MessageBoxA стоит je... меняю на jmp... УРА! Теперь могу менять прогу скока хочу... элементарный взлом CRC (антихакер  )).
Теперь по GetLocalTime... Я так из куска кода мало чё понял. Так как мне задать постоянную вместо возвращаемого значения???
| Сообщение посчитали полезным: |
Ранг: 0.0 (гость) Активность: 0.04↘0 Статус: Участник
|
Создано: 03 ноября 2004 09:27 · Поправил: Man1ac · Личное сообщение · #15
Nikolka
Хыхы =) Проверка на CRC типа как я написал
Asterix
Да, естественно не считывается  Тупанул  Но всё равно можно поймать место, когда прога сама себя открывает ;)
| Сообщение посчитали полезным: |