Помогите разобраться с 64 битами

Тема в разделе "WASM.X64", создана пользователем WaterGhost, 19 май 2009.

  1. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    WaterGhost
    Признайтесь же что накопипастили кусков с rootkit.com и пытаетесь их теперь собрать воедино.
     
  2. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Драйвер был мной еще написан год назад. Частично накопипастил. Все как-то учатся. Не думаю что вы всего сами добились без подсказок и просмотра чужого кода ;) С х64 сталкиваюсь впервые... это 2ой день когда я работаю с х64 и я думаю результат за 2ой день изучения неплохой если считать что не заканчивал ни одни курсы программирования не читал ни одной специализированной книги по программированию в ядре.
     
  3. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Мой make.bat файл:
    Код (Text):
    1. %SystemRoot%\system32\cmd.exe /c "cd C:\WINDDK\3790.1830\bin\&&setenv.bat C:\WINDDK\3790.1830\&&cd C:\driver64\driver\&&build -icZ -amd64&&pause"
    2. pause
    При это вылезают ошибки
    Код (Text):
    1. c:\WINDDK\3790.1830\inc\wnet\basetsd.h(289) : error C2220: warning treated as error - no object file generated
    2. c:\WINDDK\3790.1830\inc\wnet\basetsd.h(289) : warning C4311: 'type cast' : pointer truncation from 'const void *' to 'unsigned long'
    3. c:\WINDDK\3790.1830\inc\wnet\basetsd.h(307) : error C4312: 'type cast' : conversion from 'unsigned long' to 'void *' of greater size
    4. c:\WINDDK\3790.1830\inc\crt\string.h(59) : error C2371: 'size_t' : redefinition; different basic types
    5.         c:\dntldriver64\dntldriver\dntldriver.c(0) : see declaration of 'size_t'
    6. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(4296) : error C4013: 'UnsignedMultiplyHigh' undefined; assuming extern returning int
    7. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9227) : warning C4163: '__readcr8' : not available as an intrinsic function
    8. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9228) : warning C4163: '__writecr8' : not available as an intrinsic function
    9. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9298) : error C4013: '__movsb' undefined; assuming extern returning int
    10. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9311) : error C4013: '__movsw' undefined; assuming extern returning int
    11. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9324) : error C4013: '__movsd' undefined; assuming extern returning int
    12. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9337) : error C4013: 'FastFence' undefined; assuming extern returning int
    13. c:\WINDDK\3790.1830\inc\ddk\wnet\ntddk.h(9416) : error C4013: '__inbyte' undefined; assuming extern returning int
    14. и т.п.
    ntddk.h и basetsd.h =\ Я что-то не так делаю ? Если не сложно, подтолкните на путь истиный. Я уже разобрался что за параметры у setenv.bat. Я раньше собирал проект с -ceZ параметрами в х32. Но если их установить с параметром -amd64 то вылетают те же самые ошибки. Собираю на Windows XP 64 bit.
     
  4. WaterGhost

    WaterGhost New Member

    Публикаций:
    0
    Регистрация:
    15 июн 2007
    Сообщения:
    130
    Выяснил что ему не нравится:
    Код (Text):
    1. OldZwOpenProcess        = ( funcZwOpenProcess )        Hook(NTCALL(ZwOpenProcessInfo.FunctionAddress),        NewZwOpenProcess,        &ZwOpenProcessInfo.CollectedSpace        );
    2.     OldNtWriteVirtualMemory = ( funcNtWriteVirtualMemory ) Hook(NTCALL(NtWriteVirtualMemoryInfo.FunctionAddress), NewNtWriteVirtualMemory, &NtWriteVirtualMemoryInfo.CollectedSpace );
    Это код установки хука на ZwOpenProcess и NtWriteVirtualMemory. Видимо на 64 битных системах они не так объявлены ( И еще.. никто не подскажет номер syscall для этих процедур как в Win XP 32bit build 2600 ? Что посоветуете делать?