|
[邀请码已发][原创]HOOK之获取内核函数地址(申请激请码)
谢谢各位支持~~~~~ |
|
[求助]如何提取注册机中的音乐?
Restorator 可以提取你想要的任何资源 |
|
[求助]挂钩API
HOOK MessageBoxW 这个,让它跳到我们自己的函数处理之后再调用原来的MessageBoxW,这种本地的HOOK API应该是最简单的HOOK API而且它的作用也不是很明显,但是可以了解什么是HOOK API. #include <windows.h> #include <iostream> using namespace std; typedef int (WINAPI *pMessageBoxDef)(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType); char szOldMessageBox[5] = {0}; char szJmpMyMessageBox[5] = {(char)0xe9}; pMessageBoxDef pMessageBox = NULL; int WINAPI MyMessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType) { wcout<<L"hWnd:"<<(int)hWnd<<endl; wcout<<L"lpText:"<<lpText<<endl; wcout<<L"lpCaption:"<<lpCaption<<endl; wcout<<L"uType:"<<uType<<endl<<endl; WriteProcessMemory((void*)-1, pMessageBox, szOldMessageBox, 5, NULL); MessageBoxW(hWnd, lpText, lpCaption, uType); WriteProcessMemory((void*)-1, pMessageBox, szJmpMyMessageBox, 5, NULL); return 0; } int main() { DWORD dwJmpAddr = 0; HMODULE hModule = LoadLibrary("User32.Dll"); pMessageBox = (pMessageBoxDef)GetProcAddress(hModule, "MessageBoxW"); dwJmpAddr = (DWORD)MyMessageBox - (DWORD)pMessageBox - 5; memcpy(szJmpMyMessageBox + 1, &dwJmpAddr, 4); FreeLibrary(hModule); ReadProcessMemory((void*)-1, pMessageBox, szOldMessageBox, 5, NULL);//读出原来的前5个字节 WriteProcessMemory((void*)-1, pMessageBox, szJmpMyMessageBox, 5, NULL);//写入我们处理后的5个字节 MessageBoxW(GetForegroundWindow(), L"Inline Hook:MessageBox", L"HOOK API", MB_OK); MessageBoxW(GetForegroundWindow(), L"Hello World", L"Win32", MB_OK); return 0; } |
|
[注意]邀请码发放公布(04.07~04.21)
我也想要~~~~ |
|
[原创]14天转正--论坛新手攒钱秘籍
.....天天泡,泡啊啊。。。。。郁闷!! |
|
关于ssdt 对抗inline hook
要获得地址的话,给你一个zzage大牛发的函数。 DWORD GetDllFunctionAddress(char* lpFunctionName, PUNICODE_STRING pDllName) { HANDLE hThread, hSection, hFile, hMod; SECTION_IMAGE_INFORMATION sii; IMAGE_DOS_HEADER* dosheader; IMAGE_OPTIONAL_HEADER* opthdr; IMAGE_EXPORT_DIRECTORY* pExportTable; DWORD* arrayOfFunctionAddresses; DWORD* arrayOfFunctionNames; WORD* arrayOfFunctionOrdinals; DWORD functionOrdinal; DWORD Base, x, functionAddress; char* functionName; STRING ntFunctionName, ntFunctionNameSearch; PVOID BaseAddress = NULL; SIZE_T size=0; OBJECT_ATTRIBUTES oa = {sizeof oa, 0, pDllName, OBJ_CASE_INSENSITIVE}; IO_STATUS_BLOCK iosb; ZwOpenFile(&hFile, FILE_EXECUTE | SYNCHRONIZE, &oa, &iosb, FILE_SHARE_READ, FILE_SYNCHRONOUS_IO_NONALERT); oa.ObjectName = 0; ZwCreateSection(&hSection, SECTION_ALL_ACCESS, &oa, 0,PAGE_EXECUTE, SEC_IMAGE, hFile); ZwMapViewOfSection(hSection, NtCurrentProcess(), &BaseAddress, 0, 1000, 0, &size, (SECTION_INHERIT)1, MEM_TOP_DOWN, PAGE_READWRITE); ZwClose(hFile); hMod = BaseAddress; dosheader = (IMAGE_DOS_HEADER *)hMod; opthdr =(IMAGE_OPTIONAL_HEADER *) ((BYTE*)hMod+dosheader->e_lfanew+24); pExportTable =(IMAGE_EXPORT_DIRECTORY*)((BYTE*) hMod + opthdr->DataDirectory[ IMAGE_DIRECTORY_ENTRY_EXPORT]. VirtualAddress); arrayOfFunctionAddresses = (DWORD*)( (BYTE*)hMod + pExportTable->AddressOfFunctions); arrayOfFunctionNames = (DWORD*)( (BYTE*)hMod + pExportTable->AddressOfNames); arrayOfFunctionOrdinals = (WORD*)( (BYTE*)hMod + pExportTable->AddressOfNameOrdinals); Base = pExportTable->Base; RtlInitString(&ntFunctionNameSearch, lpFunctionName); for(x = 0; x < pExportTable->NumberOfFunctions; x++) { functionName = (char*)( (BYTE*)hMod + arrayOfFunctionNames[x]); RtlInitString(&ntFunctionName, functionName); functionOrdinal = arrayOfFunctionOrdinals[x] + Base - 1; functionAddress = (DWORD)( (BYTE*)hMod + arrayOfFunctionAddresses[functionOrdinal]); if (RtlCompareString(&ntFunctionName, &ntFunctionNameSearch, TRUE) == 0) { ZwClose(hSection); return functionAddress; } } ZwClose(hSection); return 0; } |
|
关于ssdt 对抗inline hook
NTSYSAPI NTSTATUS NTAPI NtReadVirtualMemory( IN HANDLE ProcessHandle, IN PVOID BaseAddress, OUT PVOID Buffer, IN ULONG NumberOfBytesToRead, OUT PULONG NumberOfBytesReaded OPTIONAL ); sources 文件中加入 TARGETLIBS=$(DDK_LIB_PATH)\ntdll.lib |
|
[求助]crack 初学遇到的问题
这是目前最好的反反调试插件了,功能全开应该可以。 |
|
|
|
[讨论]关于dnf装备强化问题
那些数据都是在服务器上完成的,你要改服务器数据?神? |
|
OD 用汇编修改内存字符串?怎样实现?
0 0~!- -! |
|
屏幕录像专家录制的加密视频是否有办法解除?
下来看了下。不行啊。。关注!! |
|
OD在unicode程序中的消息断点问题
很少用消息断点。。。用起来感觉不顺手,可能人太笨。 |
|
调试软件,每次调式时地址都不一样是为什么??
动态库的重定位。 |
|
国外破解论坛做的小软件 就是算不对注册码
下载要扣钱~~~ |
|
exe里的图片资源怎么找,常用资源工具无法找到资源
以图片资源存放在目录下? |
|
27岁了,从头学起还行么?
目的性,为工作?为娱乐?为爱好?工作的话就放弃吧! |
|
[讨论]亲人们,唉!!!没有邀请码的岁月啊!!
一个头疼的问题。 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值