|
[求助]上海颐东网络信息有限公司高薪招聘 信息安全开发工程师
欢迎有能力的来应聘. 欢迎有真实产品经验的c/c++开发人员来找我们. 需要大量的通信技术,文件存储技术,传输技术,数据库 oracle,sql server等技术人员. |
|
|
|
|
|
[原创]编写端口监视工具
很好,能实现数据拦截功能吗 |
|
向看雪致敬[原创]我的第一个破文
真不错,大家都是高手 |
|
[求助]上海颐东网络信息有限公司高薪招聘 信息安全开发工程师
大家的简历都不错,各有特长.希望更多高手加入. |
|
[求助]上海颐东网络信息有限公司高薪招聘 信息安全开发工程师
薪水完全看个人能力和实际成绩. 个人能力差别很大,不是只看年纪,学历,工作经验等.如果一个能做火箭的天才,也不适合这个工作. 实际成绩就是看你掌握的技术是否变成了可以用的产品.一个驱动很多人都能做出来,但是,能稳定运行的就少了.能在全国人民上亿台电脑上正常运行就更可贵了. 希望大家踊跃报名.. 我们公司的地址: 上海市沪闵路8075号虹梅商务大厦,地铁一号线锦江乐园站楼上.交通非常方便. |
|
驱动相关:IDE控制器模式如何用程序获取
看看是否有帮助呀 |
|
驱动相关:IDE控制器模式如何用程序获取
cpp文件 ----------------- // MyDiskInfo.cpp: implementation of the CMyDiskInfo class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "DiskInfo.h" #include "MyDiskInfo.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif const WORD IDE_ATAPI_IDENTIFY = 0xA1; // 读取ATAPI设备的命令 const WORD IDE_ATA_IDENTIFY = 0xEC; // 读取ATA设备的命令 #define _WIN32_WINNT 0x0400 #include "winioctl.h" //#include "NTDDSCSI.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// CMyDiskInfo::CMyDiskInfo() { } CMyDiskInfo::~CMyDiskInfo() { } BOOL __fastcall DoIdentify( HANDLE hPhysicalDriveIOCTL, PSENDCMDINPARAMS pSCIP, PSENDCMDOUTPARAMS pSCOP, BYTE btIDCmd, BYTE btDriveNum, PDWORD pdwBytesReturned) { pSCIP->cBufferSize = IDENTIFY_BUFFER_SIZE; pSCIP->irDriveRegs.bFeaturesReg = 0; pSCIP->irDriveRegs.bSectorCountReg = 1; pSCIP->irDriveRegs.bSectorNumberReg = 1; pSCIP->irDriveRegs.bCylLowReg = 0; pSCIP->irDriveRegs.bCylHighReg = 0; pSCIP->irDriveRegs.bDriveHeadReg = (btDriveNum & 1) ? 0xB0 : 0xA0; pSCIP->irDriveRegs.bCommandReg = btIDCmd; pSCIP->bDriveNumber = btDriveNum; pSCIP->cBufferSize = IDENTIFY_BUFFER_SIZE; return DeviceIoControl( hPhysicalDriveIOCTL, SMART_RCV_DRIVE_DATA, (LPVOID)pSCIP, sizeof(SENDCMDINPARAMS) - 1, (LPVOID)pSCOP, sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1, pdwBytesReturned, NULL); } char *__fastcall ConvertToString(DWORD dwDiskData[256], int nFirstIndex, int nLastIndex) { static char szResBuf[1024]; char ss[256]; int nIndex = 0; int nPosition = 0; for(nIndex = nFirstIndex; nIndex <= nLastIndex; nIndex++) { ss[nPosition] = (char)(dwDiskData[nIndex] / 256); nPosition++; // Get low BYTE for 2nd character ss[nPosition] = (char)(dwDiskData[nIndex] % 256); nPosition++; } // End the string ss[nPosition] = '\0'; int i, index=0; for(i=0; i<nPosition; i++) { if(ss[i]==0 || ss[i]==32) continue; szResBuf[index]=ss[i]; index++; } szResBuf[index]=0; return szResBuf; } int CMyDiskInfo::GetDiskInfo(int driver) { CString sFilePath; sFilePath.Format("\\\\.\\PHYSICALDRIVE%d", driver); HANDLE hFile = INVALID_HANDLE_VALUE; hFile = ::CreateFile(sFilePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if (hFile == INVALID_HANDLE_VALUE) return -1; DWORD dwBytesReturned; GETVERSIONINPARAMS gvopVersionParams; DeviceIoControl(hFile, SMART_GET_VERSION, NULL, 0, &gvopVersionParams, sizeof(gvopVersionParams), &dwBytesReturned, NULL); if(gvopVersionParams.bIDEDeviceMap <= 0) return -2; // IDE or ATAPI IDENTIFY cmd int btIDCmd = 0; SENDCMDINPARAMS InParams; int nDrive =0; btIDCmd = (gvopVersionParams.bIDEDeviceMap >> nDrive & 0x10) ? IDE_ATAPI_IDENTIFY : IDE_ATA_IDENTIFY; // 输出参数 BYTE btIDOutCmd[sizeof(SENDCMDOUTPARAMS) + IDENTIFY_BUFFER_SIZE - 1]; if(DoIdentify(hFile, &InParams, (PSENDCMDOUTPARAMS)btIDOutCmd, (BYTE)btIDCmd, (BYTE)nDrive, &dwBytesReturned) == FALSE) return -3; ::CloseHandle(hFile); DWORD dwDiskData[256]; USHORT *pIDSector; // 对应结构IDSECTOR,见头文件 pIDSector = (USHORT*)((SENDCMDOUTPARAMS*)btIDOutCmd)->bBuffer; for(int i=0; i < 256; i++) dwDiskData[i] = pIDSector[i]; // 取系列号 ZeroMemory(szSerialNumber, sizeof(szSerialNumber)); strcpy(szSerialNumber, ConvertToString(dwDiskData, 10, 19)); // 取模型号 ZeroMemory(szModelNumber, sizeof(szModelNumber)); strcpy(szModelNumber, ConvertToString(dwDiskData, 27, 46)); return 0; } |
|
驱动相关:IDE控制器模式如何用程序获取
h文件: ------------------ // MyDiskInfo.h: interface for the CMyDiskInfo class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_MYDISKINFO_H__FF310990_FA82_421A_94CD_1F696F3AB948__INCLUDED_) #define AFX_MYDISKINFO_H__FF310990_FA82_421A_94CD_1F696F3AB948__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CMyDiskInfo { public: int GetDiskInfo(int driver=0); char szModelNumber[64]; char szSerialNumber[64]; CMyDiskInfo(); virtual ~CMyDiskInfo(); }; #endif // !defined(AFX_MYDISKINFO_H__FF310990_FA82_421A_94CD_1F696F3AB948__INCLUDED_) |
|
[原创]逆向的路很崎岖很寂寞
你的成功我们的开心 |
|
|
|
[原创]查询md5密码的小东东
好厉害的人呀 |
|
[求助]上海颐东网络信息有限公司高薪招聘 信息安全开发工程师
实习生可以在公司上班,也可以在学校工作. 按照任务进行考核.我们开发团队都是分解任务到人,到独立的模块,到独立的技术点. 希望大家把自己的强项,个人经验写清楚. 谢谢大家的关注. |
|
[求助]对硬盘偏移8704字节的位置进行操作
这个问题不错.我这里正好有个程序用到硬盘的空白区域.其实,硬盘还有更多的空白空间,可以在加密,硬件指纹等等领域使用. 希望和你进一步的交流,我在上海,从事信息安全方面的软件开发工作. |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值