📄 ntlmlib.h
字号:
#ifndef NTLM_LIB_HEADER
#define NTLM_LIB_HEADER
typedef BYTE CODE[8];
typedef BYTE MD4[16];
typedef struct
{
CODE code[2];
} LMHASH, * LPLMHASH;
typedef const LMHASH * LPCLMHASH;
typedef struct
{
MD4 code;
} NTLMHASH, * LPNTLMHASH;
typedef const NTLMHASH * LPCNTLMHASH;
typedef enum{LMAuth=0,NTLMAuth} AuthMode;
typedef BYTE RESPONSE[24]; //24字节的响应字符串;
typedef const BYTE * LPCBYTE;
//将7字节的明文lpSrc转换成8字节的散列密文;
BOOL StringToKey(LPCSTR lpSrc,LPSTR lpKey);
//转换lpStr字符串中的内容到LMHASH结构中去;
BOOL StringToLMHash(LPLMHASH lpHash,LPCSTR lpStr);
//将长度是len的原文lpSrc用MD4算法加密成16字节的密文ret返回;
void md4(MD4 ret,LPCBYTE lpSrc,int len);
//转换lpStr字符串中的内容到NTLMHASH结构中去;
BOOL StringToNTLMHash(LPNTLMHASH lpHash,LPCSTR lpStr);
//对密码szPwd用服务器给定的钥匙challenge得到回应串ret;AuthMode是验证类型,可以是NTLMAuth或LMAuth;
BOOL LMAuthen(RESPONSE ret,LPCSTR szPwd,CODE challenge,AuthMode);
//将16进制数据lpCode按可见方式输出到szHex缓冲中,形成可输出字符串;szHex至少可容纳len*2+1个字符;
void CodeToHex(LPSTR szHex,LPCBYTE lpCode,int len);
//将可见的16进制字符串转换成数据形式,len是lpCode的最大缓冲长度,返回实际转换的字节数;
int HexToCode(LPBYTE lpCode,int len,LPCSTR szHex);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -