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

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

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

Создано: 31 октября 2004 05:29
· Личное сообщение · #1

Люди, кто знает как работает функция GetLocalTime...?



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

Создано: 31 октября 2004 05:48
· Личное сообщение · #2

Какой-то пространный вопрос, дизассемблируй функцию и исследуй. Или ты хотел пример использования?



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

Создано: 31 октября 2004 06:16
· Личное сообщение · #3

Нет, я хотел узнать более конкретно: каким образом она генерирует дату, что я не врубаюсь в сгенеренный ею eax. Не могу связать - как же она генерит дату.

А смысл вот в чём: хочу хакнуть антихакер касперского. Там блин не серийником защищено (было бы плёвое дело), а ключом. Срок ключа кончился - вот и всё.

Поставил бряк на GetLocalTime, там теперь нужно заменить её возвращаемое значенме на постоянную, допустим 2000 год... типа ключ ещё не истёк. И не истечёт никогда ...




Ранг: 266.8 (наставник), 5thx
Активность: 0.220.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.220.03
Статус: Участник
very WELL :)

Создано: 31 октября 2004 06:21
· Личное сообщение · #5

Nikolka пишет:
хочу хакнуть антихакер касперского

OutPost лучше =)



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

Создано: 31 октября 2004 08:02
· Личное сообщение · #6

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

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




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

Создано: 31 октября 2004 08:20
· Личное сообщение · #7

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



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

Создано: 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.040
Статус: Участник

Создано: 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.10
Статус: Участник
www.uinc.ru

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

> Конечно, это самый простой способ =)
Канешна, поэтому все нормальные люди используют цифровую подпись.



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

Создано: 02 ноября 2004 13:49 · Поправил: Man1ac
· Личное сообщение · #12

DrGolova



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

Создано: 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.040
Статус: Участник

Создано: 03 ноября 2004 09:27 · Поправил: Man1ac
· Личное сообщение · #15

Nikolka
Хыхы =) Проверка на CRC типа как я написал

Asterix
Да, естественно не считывается Тупанул Но всё равно можно поймать место, когда прога сама себя открывает ;)


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


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