Набор тестовых Win32 программ
Пока что разобраны syscall'ы
NtCreateFile,
NtOpenFile,
NtWriteFile,
NtClose. и на их основе были реализованы программы.
create.exe — создает файл, используя ntdll.lib
create2.exe — создает файл, не используя ntdll.lib
writefile.exe — пишет в существующий файл HELLO в юникоде, используя ntdll.lib
writefile2.exe — пишет в существующий файл HELLO в юникоде, используя ntdll.lib
исходники, сборка
исходники
в папках 2003 и xp находятся библиотека ntdll для 2003 и xp версий Windows соответственно.
при
сборке используется nmake:
- nmake -f makefile_xp для winxp
- nmake -f makefile_2003 для win2003
можно указать в качестве цели одну из вышеперечисленных программ, тогда будет собрана только она.
очистка:
nmake -f makefile_xp clean
little hint по cl.exe и link.exe:
- флаг /Gz указывает использовать соглашение _stdcall для вызовов функций
- /NODEFAULTLIB не линкует со стандартными библиотеками
Примечание
Для вызова syscall'ов в программах без зависимости от ntdll используется инструкция
sysenter архитектуры i686, её можно заменить, реализовав функцию _syscall@0 иначе чем в
sysenter.asm