Посл.ответ |
Сообщение |
Ранг: 40.0 (посетитель), 1thx Активность: 0.03↘0 Статус: Участник
|
Создано: 29 сентября 2004 06:54 · Поправил: Модератор · Личное сообщение · #1
Осталось тут три дня до активации, а никакие кряки существующие не помогли, пришлось самому копать эту активацию. Оказалось, что если пропатчить один переход в winlogon'е, то активация проверяться не будет. Кряк работает на XP Pro SP2 точно, насчёт других комбинаций не знаю.
| Сообщение посчитали полезным: |
|
![](img/s8.gif) Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 26 июня 2005 22:07 · Личное сообщение · #2
RideX
обойтись только одной DLL
Типа так?
типа как это делается, когда патчится ASProtectченнная прога, которая грузит DLL
т.о. получается универсальное решение, не нарушающее целостность файла
добавить в код DllMain какой-либо из библиотек, кот. грузит winlogon, пропатчивание самого winlogon'a
----- EnJoy! | Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 26 июня 2005 22:13 · Поправил: Asterix · Личное сообщение · #3
RideX пишет:
Типа так?
Именно так.
только в обработчике DLL_PROCESS_ATTACH
нужно возвращать TRUE, иначе ниЧЧё не получится,
т.е. DLL не загрузится ;)
| Сообщение посчитали полезным: |
Ранг: 163.7 (ветеран) Активность: 0.07↘0 Статус: Участник
|
Создано: 27 июня 2005 05:54 · Личное сообщение · #4
Asterix пишет:
все существующие кейгены только для так
называемых корпоративных версий
Для корпоративных версий активация вообще не требуется ;)
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 27 июня 2005 06:07 · Личное сообщение · #5
S_T_A_S_ пишет:
Для корпоративных версий активация вообще не требуется ;)
Там все-равно нужен кейген, который генерит установочный номер,
потом можно проверить свежеустановленную систему с этим номером
на сайте MS ;)
| Сообщение посчитали полезным: |
Ранг: 77.7 (постоянный), 1thx Активность: 0.04↘0 Статус: Участник
|
Создано: 27 июня 2005 11:04 · Личное сообщение · #6
Asterix пишет:
потом можно проверить свежеустановленную систему с этим номером
на сайте MS
не, уже низзя.
я раньше так и делал, но все время получал ответ типа, ваш номер вроде пирейтед. обратитесь к сисадмину за другим номером. на ру-борде прочел, что для корпоративки д.б. 640-642.
накачал новых кейгенов, сгенерил, полез на MS проверить - а там такого сервиса уже нет!
пишут про то как отличить правильную винду от пиратской - всякие там лейблы, сертификаты и голограммы.
а если сомневаетесь, грят, пришлите ваш продукт нам на экспертизу. LOL!
видимо последние кейгены действительно хороши, не могут больше MS по сидикею пиратов ловить!
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 27 июня 2005 18:57 · Личное сообщение · #7
Asterix пишет:
нужно возвращать TRUE, иначе ниЧЧё не получится, т.е. DLL не загрузится ;)
А я подумал зачем DLL в памяти болтаться, после того как сделает свою работу =)
У меня это работает одинаково с TRUE/FALSE:
.486
.model flat,stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
szCaption TCHAR "DLLApp",0
szHello TCHAR "Hello from DLL",0
bNewByte BYTE 090h
hProcess HANDLE ?
.code
DllMain proc hInstance :HINSTANCE, dwReason WORD, lpReserved :LPVOID
.if dwReason == DLL_PROCESS_ATTACH
invoke GetCurrentProcessId
invoke OpenProcess, PROCESS_ALL_ACCESS, FALSE, eax
.if eax != NULL
mov hProcess,eax
invoke WriteProcessMemory, hProcess, 00401000h, addr bNewByte,\
sizeof bNewByte, NULL
invoke CloseHandle,hProcess
.endif
invoke MessageBox, NULL, addr szHello, addr szCaption, MB_ICONINFORMATION
.endif
xor eax,eax
; inc eax
ret
DllMain endp
end DllMain
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 27 июня 2005 19:13 · Личное сообщение · #8
RideX пишет:
А я подумал зачем DLL в памяти болтаться, после того как сделает свою работу =)
В принципе тоже мысль правильная ;)
Что до листинга то GetCurrentProcess будет вполне достаточно ;)
также неплохо перед тем как патчить узнать адрес загрузки exe, мало ли что ;)
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 27 июня 2005 22:11 · Личное сообщение · #9
Asterix
У меня диск SP2 уже полгода наверное лежит, всё пока никак не решусь поставить (сейчас стоИт SP1 + несколько заплаток). А antiwpa для SP2 не нравится тем, что процесс постоянно висит в памяти, метод предложенный dragon лучше
Только что проверил, winlogon не грузит DLL если нет ключа:
"Logon"=<export_funcname_from_dll>
но хотя бы пустой ключ его устраивает ![](img/smilies/s1.gif) В остальном наша DLL отрабатывает как ожидалось и не висит в памяти. Теперь уже точно можно будет переходить к "упражнениям" с самим winlogon ;)
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 27 июня 2005 22:33 · Личное сообщение · #10
Asterix пишет:
GetCurrentProcess будет вполне достаточно ;)
Просто мне показалось это более надёжным %)
1. The GetCurrentProcess function retrieves a pseudo handle for the current process.
2. The GetCurrentProcessId function retrieves the process identifier of the calling process.
| Сообщение посчитали полезным: |
![](img/s8.gif) Ранг: 605.2 (!), 341thx Активность: 0.47↘0.25 Статус: Модератор Research & Development
|
Создано: 27 июня 2005 22:57 · Личное сообщение · #11
RideX
А antiwpa для SP2 не нравится тем, что процесс постоянно висит в памяти
AntiWPA c antiwpa3.tk/ патчит winlogon, a не висит в памяти
но в любом случае корпоративная версия предпочтительнее
в сети полно ресурсов о том, как самому сделать корпоративный образ XP
----- EnJoy! | Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 28 июня 2005 03:45 · Личное сообщение · #12
RideX
В случае использования GetCurrentProcess тебе не нужно открывать процесс,
у тебя и так будет хэндл
invoke WriteProcessMemory, $invoke(GetCurrentProcess), 00401000h, addr bNewByte,\
sizeof bNewByte, NULL
| Сообщение посчитали полезным: |
Ранг: 352.4 (мудрец), 4thx Активность: 0.15↘0 Статус: Участник retired
|
Создано: 28 июня 2005 11:03 · Личное сообщение · #13
я про кейгены от again и zwt... как??? можно было закейгенить ecc-512??? кто-нить в курсе, что за дырки были в реализации
| Сообщение посчитали полезным: |
Ранг: 192.3 (ветеран), 18thx Активность: 0.12↘0 Статус: Участник stoned machine-gunner
|
Создано: 28 июня 2005 11:19 · Личное сообщение · #14
ssx
ктож об этом расскажет... но я могу попробовать уточнить у мемберов again
----- once you have tried it, you will never want anything else | Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 28 июня 2005 17:46 · Личное сообщение · #15
Jupiter
Просто я у кого-то видел, а т.к. больше крэков к SP2 не знаю, то подумал что это и есть antiwpa.
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 28 июня 2005 17:48 · Личное сообщение · #16
Asterix
Понял, тогда значит так?
.486
.model flat,stdcall
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
szCaption TCHAR "DLLApp",0
szHello TCHAR "Hello from DLL. Dump right now!",0
align 4
dwOffsets DWORD 00001000h, 00001001h, 00001002h, 00001003h, 00001004h
DWORD 00001005h, 00001006h, 00001007h, 00001008h, 00001009h
bNewBytes BYTE 090h, 090h, 090h, 090h, 090h, 090h, 090h, 090h, 090h, 090h
nNewBytes equ $ - bNewBytes
.code
DllMain proc hInstance :HINSTANCE, dwReason WORD, lpReserved :LPVOID
.if dwReason == DLL_PROCESS_ATTACH
pushad
invoke GetModuleHandle, NULL
mov edx,eax
invoke GetCurrentProcess
xor ecx,ecx
mov ebx,offset dwOffsets
mov esi,offset bNewBytes
@@:
pushad
add esi,ecx
mov edi,[ebx + ecx*4]
add edi,edx
invoke WriteProcessMemory, eax, edi, esi, 1, NULL
popad
inc ecx
cmp ecx,nNewBytes
je @f
jmp @b
@@:
invoke MessageBox, NULL, addr szHello, addr szCaption, MB_ICONINFORMATION
popad
.endif
xor eax,eax
ret
DllMain endp
end DllMain
| Сообщение посчитали полезным: |
Ранг: 450.1 (мудрец) Активность: 0.26↘0 Статус: Участник
|
Создано: 28 июня 2005 18:29 · Поправил: Asterix · Личное сообщение · #17
зачем pushad/popad
просто пишешь DllMain proc uses ebx esi edi hInstance :HINSTANCE, dwReason WORD, lpReserved :LPVOID
> mov edx,eax
> invoke GetCurrentProcess
так нельзя, MS не гаранирует сохранность eax, edx, ecx после GetCurrentProcess
а побайтная запись через WriteProcessMemory тоже для прикола?
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 28 июня 2005 19:44 · Личное сообщение · #18
Asterix пишет:
uses ebx esi edi
если так, то они будут находиться сразу после пролога, я сохраняю только там где их использую - в обработчике DLL_PROCESS_ATTACH. Или это без разницы?
Asterix пишет:
MS не гаранирует сохранность eax, edx, ecx
Точно, тогда
invoke GetModuleHandle, NULL
push eax
invoke GetCurrentProcess
pop edx
Asterix пишет:
побайтная запись через WriteProcessMemory тоже для прикола?
Не, это если нужно писАть по байту по нескольким разным адресам, иначе конечно блоком и цикл отсюда выбросить %)
| Сообщение посчитали полезным: |
Ранг: 42.0 (посетитель) Активность: 0.04↘0 Статус: Участник
|
Создано: 29 июня 2005 10:41 · Личное сообщение · #19
Asterix пишет:
MS не гаранирует сохранность eax, edx, ecx
Блин, тормознул, просто ebx,esi или edi
| Сообщение посчитали полезным: |