首页
社区
课程
招聘
[旧帖] [原创]IOCTL解码程序[邀请码已发] 0.00雪花
发表于: 2010-11-28 23:15 2990

[旧帖] [原创]IOCTL解码程序[邀请码已发] 0.00雪花

2010-11-28 23:15
2990

大都数驱动逆向的人都会碰到IOCTL的16进制码,这时候需要将这16进制码解码成原生的IOCTL_CODE,这里参照了OSROnline论坛上的在线DECODE,写下了这个小工具,希望对大伙儿有帮助(也为自己留一份,嘿嘿)。

//////////////////////////////////////////////////////////////////////////
// Decode.h
//////////////////////////////////////////////////////////////////////////
#pragma once

#include <windows.h>
#include <tchar.h>
#include "resource.h"

//
// Macro definition for defining IOCTL and FSCTL function control codes.  Note
// that function codes 0-2047 are reserved for Microsoft Corporation, and
// 2048-4095 are reserved for customers.
//
//#define CTL_CODE( DeviceType, Function, Method, Access ) (                 \
//	((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \
//	)
//

// 设备类型字符串
LPCTSTR DeviceTypeString[54];

// 对话框回调函数
BOOL CALLBACK MainDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

// 对话框初始化
void OnInitDialog( HWND hDlg );

// CTLCODE_VALUE 窗口处理过程
LRESULT CALLBACK CTLCODE_EditProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);

void OnCommand( DWORD dwId, LPARAM lParam );

// 解码
bool Decode();

// 初始化设备类型集
void InitDeviceType();

// 清除EDIT存在的值
void ClearEditValue();

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
void InitDeviceType()里头的数组是怎么来的
不太明白
2010-11-29 02:24
0
雪    币: 248
活跃值: (188)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
3
参考WDK的文档和NTDDK.h中的定义
上传的附件:
2010-11-29 09:40
0
雪    币: 21
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
Nice! 正好需要这方面资料。

顺便问下楼主, 驱动文件怎么方便的使用汇编修改二进制代码?OD打不开唉~IDA又只能在十六进制上进行编辑。
2010-12-6 15:45
0
雪    币: 248
活跃值: (188)
能力值: ( LV12,RANK:300 )
在线值:
发帖
回帖
粉丝
5
嘿嘿,就是在IDA上面进行的
2010-12-7 20:48
0
游客
登录 | 注册 方可回帖
返回
//