Превращение NT )

Тема в разделе "WASM.WIN32", создана пользователем Developer_PROFX, 27 фев 2005.

  1. Developer_PROFX

    Developer_PROFX New Member

    Публикаций:
    0
    Регистрация:
    22 мар 2004
    Сообщения:
    16
    Есть слабая тачка, для которой NT 3.51 - лучший выбор. Но большинство прог работать не хотят (особенно от MS) (. ИМХО большинство из них просто выделываются. Можно ли как-нибудь сделать так, что бы 3.51 говорила всем, что она NT 4.0?
     
  2. Foamplast

    Foamplast New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2003
    Сообщения:
    80
    Адрес:
    Russia
    Скорее всего, в этом не будет смысла, так как будут отсутствовать необходимые возможности (dll, функции в существующих dll и т.п.)
     
  3. Developer_PROFX

    Developer_PROFX New Member

    Публикаций:
    0
    Регистрация:
    22 мар 2004
    Сообщения:
    16
    Да, конечно. Но так не всегда. К тому же в NT 3.51+Shell (Часть из NT 4.0: Explorer, Shell32, etc) работают довольно много программ. Пробовал ковырять kernel32.dll!GetVersionExW. Также есть ещё RtlGetVersion (точное имя

    не помню), но до неё ещё не добрался.



    Shell сам меняет версию на 4.0, но не билд.

    Основной вопрос: как подменить билд NT 3.51 на номер билда 4.0?



    .text:77F344B4 ; BOOL __stdcall GetVersionExW(LPOSVERSIONINFOW lpVersionInformation)

    .text:77F344B4 public GetVersionExW

    .text:77F344B4 GetVersionExW proc near ; CODE XREF: GetVersionExA+2Fp

    .text:77F344B4

    .text:77F344B4 lpVersionInformation= dword ptr 4

    .text:77F344B4

    .text:77F344B4 mov ecx, [esp+lpVersionInformation]

    .text:77F344B8 cmp dword ptr [ecx], 114h

    .text:77F344BE jz short loc_77F344CB

    .text:77F344C0 push 7Ah ; dwErrCode

    .text:77F344C2 call SetLastError

    .text:77F344C7 xor eax, eax

    .text:77F344C9 jmp short locret_77F34507

    .text:77F344CB ; ---------------------------------------------------------------------- -----

    .text:77F344CB

    .text:77F344CB loc_77F344CB: ; CODE XREF: GetVersionExW+Aj

    .text:77F344CB movzx eax, word_77F613F8

    .text:77F344D2 mov [ecx+4], eax

    .text:77F344D5 add ecx, 14h

    .text:77F344D8 movzx edx, word_77F61488

    .text:77F344DF mov [ecx-0Ch], edx

    .text:77F344E2 movzx eax, word_77F61468

    .text:77F344E9 mov dword ptr [ecx-4], 2

    .text:77F344F0 mov [ecx-8], eax

    .text:77F344F3 push dword_77F613FC

    .text:77F344F9 push ecx

    .text:77F344FA call wcscpy

    .text:77F344FF add esp, 8

    .text:77F34502 mov eax, 1

    .text:77F34507

    .text:77F34507 locret_77F34507: ; CODE XREF: GetVersionExW+15j

    .text:77F34507 retn 4

    .text:77F34507 GetVersionExW endp



    Изменение movzx'ов ничего не дало. И что это за слова: word_77F613F8,word_77F61488,word_77F61468,dword_77F613FC?



    ЗЫ

    Как не хочется ставить Win95 :dntknw:((((!!!

    Linux не предлагать - нужна винда, и не надо обьяснять какой он крутой - я сам знаю )
     
  4. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    IMHO маразмом занимаешься. Добавь лучше памяти и поставь windows 2000 и 2000lite прогу, которая отрежет всё, что тебе не надо.
     
  5. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Можно пропатчить word'ы нужными значениями, только dwPlatformId придётся менять прямо в коде, но это вроде не нужно :).
    Код (Text):
    1.  
    2. typedef struct _OSVERSIONINFO {
    3.   DWORD dwOSVersionInfoSize;      //
    4.   DWORD dwMajorVersion;           // <- word_77F613F8
    5.   DWORD dwMinorVersion;           // <- word_77F61488
    6.   DWORD dwBuildNumber;            // <- word_77F61468
    7.   DWORD dwPlatformId;             // <- .text:77F344E9 mov dword ptr [ecx-4], 2
    8.   TCHAR szCSDVersion[128];        // <- offset_77F613FC - на самом деле это адрес строки
    9. } OSVERSIONINFO;
    10.  
     
  6. Developer_PROFX

    Developer_PROFX New Member

    Публикаций:
    0
    Регистрация:
    22 мар 2004
    Сообщения:
    16
    s0larian

    Дык чё ставить? Не куда! Нету SIMM'ов 72-pin! Да и дорого.



    S_T_A_S_


    Пытался, чё то не получилось. Ладно, ща будем фиксить другим способом ))