Недавно я чинил IAT в упакованном исполняемом файле MoleBox и увидел, что он связан с функциями ядра 32: '_lopen', '_lwrite' и '_lread'. На этом сайте указано, что эти API предоставляются для совместимости с 16-разрядными версиями Windows. Я понимаю, что приложения «Win16» не могут выполняться в долгом режиме (да, я использую Win8.1 x64) — так с какой целью они все еще включены в «kernel32.dll»?
Кстати, эти функции даже не включены в библиотеку «msdn».
РЕДАКТИРОВАТЬ: Также кажется, что эти функции на самом деле не 16-битные! Они принимают 32-битные параметры в стеке.
kernel32.dll
— это 32- или 64-битный модуль. Кроме того, тот факт, что функция принимает 32-битные параметры, не делает ее 32-битной. - person David Heffernan   schedule 08.01.2015