| Посл.ответ | 
Сообщение | 
 Ранг: 40.0 (посетитель), 1thx Активность: 0.03↘0 Статус: Участник 
 
 | 
Создано: 29 сентября 2004 06:54 · Поправил: Модератор   · Личное сообщение ·  #1 
Осталось тут три дня до активации, а никакие кряки существующие не помогли, пришлось самому копать эту активацию. Оказалось, что если пропатчить один переход в winlogon'е, то активация проверяться не будет. Кряк работает на XP Pro SP2 точно, насчёт других комбинаций не знаю.
   | Сообщение посчитали полезным:  | 
 | 
  Ранг: 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> 
но хотя бы пустой ключ его устраивает    В остальном наша 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.
  
  | Сообщение посчитали полезным:   | 
  Ранг: 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
   | Сообщение посчитали полезным:   |