On Tue, Oct 02, 2012 at 08:12:11PM +0400, "Артём Н." wrote: > >> Посмотрел импорт. Действительно, импортирует из ntdll.dll, kernelbase и, в w7, > >> ещё из кучи каких-то библиотек, у которых импорта нет. > >> Ntdll, видимо, использует прерывания или ещё что-то для вызова функций ядра. > > ntdll это ядро. > А разве не ntoskrnl.exe? Да, вру. А ntdll использует обычный SYSENTER/SYSCALL (ну или прерывание на старых процессорах/старых ОС), как и либц. user32/gdi32, кстати, тоже содержат сисколлы. > >> Т.е., kernel32 не обязательна. > >> Но всегда включается любым вменяемым компилятором. Хотя бы потому, что функция > >> ExitProcess используется везде (в нормально собранных приложениях). > > Это не аргумент, тем более не аргумент для того, что вы этим хотели > > показать (я так и не понял что). > К тому, что всё-таки любое приложение, не завязанное на какие-то системные > недокументированные особенности, её использует. Любое приложение подсистемы Windows - да, конечно (kernel32, user32 и gdi32 представляют собой юзерспейсную часть этой подсистемы). Для иных подсистем это неверно. -- WBR, wRAR
Attachment:
signature.asc
Description: Digital signature