|
|
|
|
|
[求助]Cheat Engine 是如何搜索内存的?
如果我的猜测正确,哪里可以下载简单实现的代码呢 推荐个好的外文网站也好啊 |
|
|
[求助]Cheat Engine 是如何搜索内存的?
看得痛苦,还得安装 Delphi编译器,里面的声明 定义什么的都不一样。再说看懂了也没多大用,我的本意是自己实现一个类似的工具,那些代码对我来说没用。我只能用C代码 就说说原理就行了,几句话,大牛们不要吝啬啊 |
|
|
[原创]获取IE历史记录探究性学习
我以前写过一个自动捕获IE密码的工具,准确性相当高。获取历史记录根本没什么意思,COM和ATL现在早不搞了。 |
|
|
[原创]某网游盗号木马实现手记
tmd 是什么壳 ? |
|
|
[求助]谁能推荐个有TOP功能的记事本啊
算了,自己写一个吧,真烦,写记事本程序的作者智商肯定都比较底下 |
|
|
[请教]怎样监视对某个文件的读操作?
filemon 是采用文件系统的过滤驱动实现的。 |
|
|
|
|
|
[求助]请问winio键盘模拟只能在win2000下用么?在winxp下不能用么?
反过来,只能XP下运行 |
|
|
[分享][转帖]BSD ROOTKIT 设计_内核黑客指引书
好东西,无私奉献啊,不顶不行 |
|
|
[讨论]学破解一个多月,一个软件都破不了
正常,一个月就能破解商业软件,那软件公司还混不混了 |
|
|
|
|
|
[原创]必备绝技——hook大法( 中 )
#define SYSTEMSERVICE(_func) \ KeServiceDescriptorTable.ServiceTableBase[ *(PULONG)((PUCHAR)_func+1)] /*Zw*函数都开始于opcode:MOV eax, ULONG,这里的ULONG就是系统调用函数在SSDT中的索引,因此_func+1(_func为Zw*函数的地址,你可以搜索ntoskrnl.exe的导出表来获取它?)就是系统调用函数在SSDT中的索引,利用这个索引就可以找到对应的NT*()函数的地址。ZW*()函数指向INT 2eh ,而NT*()指向函数代码这意味着Zw*()函数集合将从用户模式转入内核模式,而Nt*符号直接指向的代码会在模式切换后被执行。 */ #define HOOK_SYSCALL(_Function, _Hook, _Orig ) \ _Orig = (PVOID) InterlockedExchange( (PLONG) \\注意,InterlockedExchange指令可以保证是原子操作 &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook) |
|
|
[原创]必备绝技——hook大法( 中 )
一个很重要的参数 #pragma pack(n) 数据边界对齐方式: 以如下结构为例: struct { char a; WORD b; DWORD c; char d; } 在Windows默认结构大小: sizeof(struct) = 4+4+4+4=16; 与#pragma pack(4)一样 若设为 #pragma pack(1), 则结构大小: sizeof(struct) = 1+2+4+1=8; 若设为 #pragma pack(2), 则结构大小: sizeof(struct) = 2+2+4+2=10; 在#pragma pack(1)时:空间是节省了,但访问速度降低了; 关于MDL:具体见ddbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3#2K6k6r3^5J5i4K6u0W2L8h3W2U0M7X3!0K6L8$3k6@1i4K6u0W2j5$3!0E0i4K6u0r3k6h3&6Q4x3X3c8#2M7#2)9J5c8X3I4A6j5Y4u0S2M7Y4W2Q4x3V1k6S2j5e0b7^5z5e0f1H3y4W2)9J5k6h3q4K6M7s2R3`. A contiguous virtual memory address range can be spread over several physical pages, and these pages can be discontiguous. The system uses a memory descriptor list (MDL) structure to represent the physical page layout for a virtual memory buffer. You can allocate an MDL with the IoAllocateMdl routine. For a buffer that is allocated from nonpaged pool, use MmBuildMdlForNonPagedPool to initialize the page number array. For pagable memory, the correspondence between virtual and physical memory is temporary, so the page number array is valid only under certain circumstances. Call MmProbeAndLockPages to lock the pagable memory into place and initialize the page number array for the current layout. The memory will not be paged out until the caller uses the MmUnlockPages routine, at which point the contents of the page number array are no longer valid. |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值