zoukankan      html  css  js  c++  java
  • 黑客编程教程(十一)获得系统详细信息

    木马程序一般都能获得系统详细信息,下面的代码获得计算机名,内存容量,驱动器类型: 
     
    
    #include<stdio.h>
    
    #include<windows.h>
    
     
    
    void GetSysInfo();
    
     
    
    DWORD GetOS() 
    
    { 
    
    OSVERSIONINFO os; 
    
     
    
     
    
    os.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); 
    
    GetVersionEx(&os); 
    
    switch(os.dwPlatformId) 
    
    { 
    
    case VER_PLATFORM_WIN32_WINDOWS: 
    
    return VER_PLATFORM_WIN32_WINDOWS; 
    
     
    
    case VER_PLATFORM_WIN32_NT: 
    
    return VER_PLATFORM_WIN32_NT; 
    
    } 
    
    return 0;
    
    } 
    
     
    
    VOID GetSysInfo() 
    
    { 
    
    TCHAR szBuff[MAX_PATH]; 
    
    TCHAR szTemp[MAX_PATH]; 
    
     
    
     
    
    wsprintf(szBuff,"
    
    
    <<System Information>>
    
    
    "); 
    
    printf("%s",szBuff);
    
     
    
    //计算机名 
    
    DWORD len=sizeof(szTemp); 
    
    GetComputerName(szTemp,&len); 
    
    wsprintf(szBuff,"Computer Name: %s
    
    
    ",szTemp); 
    
    printf("%s",szBuff);
    
     
    
    //当前操作系统 
    
    switch(GetOS()) 
    
    { 
    
    case VER_PLATFORM_WIN32_WINDOWS: 
    
    lstrcpy(szTemp,"Windows 9x"); 
    
    break; 
    
    case VER_PLATFORM_WIN32_NT: 
    
    lstrcpy(szTemp,"Windows NT/2000"); 
    
    break; 
    
    } 
    
    wsprintf(szBuff,"Option System: %s
    
    
    ",szTemp); 
    
    printf("%s",szBuff);
    
     
    
    //内存容量 
    
    MEMORYSTATUS mem; 
    
    mem.dwLength=sizeof(mem); 
    
    GlobalMemoryStatus(&mem); 
    
    wsprintf(szBuff,"Total Memroy: %dM
    
    
    ",mem.dwTotalPhys/1024/1024+1); 
    
    printf("%s",szBuff);
    
     
    
    //系统目录 
    
    TCHAR szPath[MAX_PATH]; 
    
    GetWindowsDirectory(szTemp,sizeof(szTemp)); 
    
    GetSystemDirectory(szBuff,sizeof(szBuff)); 
    
    wsprintf(szPath,"Windows Directory: %s
    
    
    System Directory: %s
    
    
    ",szTemp,szBuff); 
    
    printf("%s",szBuff);
    
     
    
    //驱动器及分区类型 
    
    TCHAR szFileSys[10]; 
    
     
    
    for(int i=0;i<26;++i) 
    
    { 
    
    wsprintf(szTemp,"%c:\",'A'+i); 
    
    UINT uType=GetDriveType(szTemp); 
    
    switch(uType) 
    
    { 
    
    case DRIVE_FIXED: 
    
    GetVolumeInformation(szTemp,NULL,NULL,NULL,NULL,NULL,szFileSys,MAX_PATH); 
    
    wsprintf(szBuff,"Hard Disk: %s (%s)
    
    
    ",szTemp,szFileSys); 
    
    printf("%s",szBuff);
    
    break; 
    
    case DRIVE_CDROM: 
    
    wsprintf(szBuff,"CD-ROM Disk: %s
    
    
    ",szTemp); 
    
    printf("%s",szBuff);
    
    break; 
    
    case DRIVE_REMOTE: 
    
    GetVolumeInformation(szTemp,NULL,NULL,NULL,NULL,NULL,szFileSys,MAX_PATH); 
    
    wsprintf(szBuff,"NetWork Disk: %s (%s)
    
    
    ",szTemp,szFileSys); 
    
    printf("%s",szBuff);
    
    break; 
    
    } 
    
    } 
    
     
    
    } 
    
    int main(void )
    
    {
    
    GetSysInfo();
    
    return 0;
    
     
    
    }
  • 相关阅读:
    如何防止表单重复提交
    二、编程题
    Java 基础测试题
    常见异常
    Hibernate工作原理及为什么要用?
    简述拦截器的工作原理以及你在项目中使用过哪些自定义拦截器。
    拦截器和过滤器的区别
    浏览器默认样式
    数组去重
    数组排序
  • 原文地址:https://www.cnblogs.com/rinack/p/3195652.html
Copyright © 2011-2022 走看看