|
[求助] 代码注入问题
可以进程快照得到进程句柄,然后直接里面创建个线程,让他执行你的代码就好了啊 |
|
一个老帖子讨论过的问题,小弟不懂,望指点
都找到标题了 数据窗口跟随,改完保存一下就好了啊,或者干脆C32查找字符串,更快 |
|
怪事连年有,今年特别多?高手进
我去,父子间的网络战争啊,也许你儿子技术比你高的多 |
|
学习之路 - 期待大神们高端大气上档次的回复
驱动的话 我倒是在学windows驱动开发详解,网络编程的话,不知道你要学的是SOCKET海水p2p |
|
[分享]再再发一个邀请码..(已更新)
额 你什么时候还发一个啊。。。我都一年了 还他妹的临时.......... |
|
如何让电脑无法启动
插销拔了 |
|
脱商业壳违法吗?
脱壳是服务人民,是为了更快的缩小贫富差距,是一种爱国爱民的体现 |
|
[原创]一步一步带你玩破解
真悲惨,你也是临时会员。。。 |
|
[原创][原创]win32写的聊天室,句句注释
额 伟大的易语言。。。。。。。。。 |
|
[原创][原创]win32写的聊天室,句句注释
额 当初在鱼C发过,都奖励我鱼币了,今天又重新注释了下客户端,服务端已经注释的很详细了 |
|
[原创][原创]win32写的聊天室,句句注释
额 我都注册一年了 还是临时会员 |
|
[求助]关于windbg调试错误的问题
我看了网上的好几个帖子了 都是关于 HOOK SSDT的 大概意思 好像是要用函数获取SSDT的地址 然后把地址给指针变量 来进行HOOK 不过 他的源码 我没看到有函数会给KeServiceDescriptorTable这个指针变量一个地址 是不是这里出错了呢 |
|
[求助]关于windbg调试错误的问题
额 英语是我最大的弱点 不过这个代码 我是从堕落天才发布的那个源码复制的 编译会通过 竟然会蓝屏。。。 |
|
[求助]关于windbg调试错误的问题
这是我的完整代码: #include "ntddk.h" typedef struct _SERVICE_DESCRIPTOR_TABLE { PVOID ServiceTableBase; //SSDT表的基址 PULONG ServiceCounterTableBase; ULONG NumberOfService; //服务个数 ULONG ParamTableBase; }SERVICE_DESCRIPTOR_TABLE,*PSERVICE_DESCRIPTOR_TABLE; PSERVICE_DESCRIPTOR_TABLE KeServiceDescriptorTable; //这个是导出函数 VOID OnUnload(IN PDRIVER_OBJECT DriverObject); VOID Hook(); VOID Unhook(); ULONG JmpAddress; //跳到NtOpenProcess里的地址 ULONG OldServiceAddress ; //原来NtOpenProcess的服务地址 VOID MyNtOpenProcess() { DbgPrint("you are success\n"); } extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT pDriObj,IN PUNICODE_STRING pReg) { pDriObj->DriverUnload=OnUnload; //卸载函数 _asm { int 3 } //此处断点 DbgPrint("Unhooker load"); //打印信息 Hook(); //进入函数 return STATUS_SUCCESS; //返回状态 } VOID OnUnload(IN PDRIVER_OBJECT DriverObject) { DbgPrint("Unhooker unload!"); Unhook(); } VOID Hook() { _asm { int 3 } //这里也断下来 ULONG Address; Address=(ULONG)KeServiceDescriptorTable->ServiceTableBase+0x7a * 4;//得到OpenProcess函数所在的地址 DbgPrint("Address:0x%08X",Address); //打印出他的地址 //解引用,保存原来的地址 OldServiceAddress=*(ULONG*)Address; //返回地址处的内容 也就是真正的地址 DbgPrint("OldServiceAddress:0x%08X",OldServiceAddress); DbgPrint("MyNtOpenProcess:0x%08X",MyNtOpenProcess); //打印出函数的地址 JmpAddress=(ULONG)NtOpenProcess+10; //这样函数前面的jmp都失效了 返回的函数地址+10处的地址 DbgPrint("JmpAddress:0x%08X",JmpAddress); //打印出此时的地址 _asm{ //去掉内存保护 cli //关闭中断 mov eax,cr0 //寄存器的值移到eax and eax,not 10000h //进行与运算和非运算 mov cr0,eax //把结果送给cr0 } *((ULONG*)Address)=(ULONG)MyNtOpenProcess; //不是调用 是把函数的地址给他 把地址存放在函数表里面 _asm{ //恢复内存保护 mov eax,cr0 //cr0寄存器的值给eax or eax,10000h // mov cr0,eax sti } } VOID Unhook() { ULONG Address; Address=(ULONG)KeServiceDescriptorTable->ServiceTableBase+0x7a*4; _asm{ cli mov eax,cr0 or eax,not 10000h mov cr0,eax } *((ULONG*)Address)=(ULONG)OldServiceAddress; //还原SSDT _asm{ mov eax,cr0; or eax,10000h mov cr0,eax sti } DbgPrint("UnHook\n"); } |
|
[求助]关于windbg调试错误的问题
我刚刚u命令查看了下异常地址,汇编代码如下: kd> u f8cb84cb FirstHook+0x4cb: f8cb84cb 8b08 mov ecx,dword ptr [eax] f8cb84cd 81c1e8010000 add ecx,1E8h f8cb84d3 894dfc mov dword ptr [ebp-4],ecx f8cb84d6 8b55fc mov edx,dword ptr [ebp-4] f8cb84d9 52 push edx f8cb84da 68a086cbf8 push offset FirstHook+0x6a0 (f8cb86a0) f8cb84df e828010000 call FirstHook+0x60c (f8cb860c) f8cb84e4 83c408 add esp,8 看到add 我就想到了源码那里 然后查看了下 好像是这里错了: VOID Hook() { _asm { int 3 } //这里也断下来 ULONG Address; Address=(ULONG)KeServiceDescriptorTable->ServiceTableBase+0x7a * 4;//得到OpenProcess函数所在的地址 DbgPrint("Address:0x%08X",Address); //打印出他的地址 //解引用,保存原来的地址 OldServiceAddress=*(ULONG*)Address; //返回地址处的内容 也就是真正的地址 DbgPrint("OldServiceAddress:0x%08X",OldServiceAddress); DbgPrint("MyNtOpenProcess:0x%08X",MyNtOpenProcess); //打印出函数的地址 JmpAddress=(ULONG)NtOpenProcess+10; //这样函数前面的jmp都失效了 返回的函数地址+10处的地址 DbgPrint("JmpAddress:0x%08X",JmpAddress); //打印出此时的地址 可是我就是看着堕落天才的源码写的啊 怎么会错呢 |
|
[求助]关于windbg调试错误的问题
谢谢您啊 兄台 问题已经弄好了 是蓝屏的问题 我是看的堕落天才的SSDT HOOK 用命令查看了下 蓝屏信息如下: kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* SYSTEM_THREAD_EXCEPTION_NOT_HANDLED (7e) This is a very common bugcheck. Usually the exception address pinpoints the driver/function that caused the problem. Always note this address as well as the link date of the driver/image that contains this address. Arguments: Arg1: c0000005, The exception code that was not handled Arg2: f8cb84cb, The address that the exception occurred at Arg3: f8af1ba8, Exception Record Address Arg4: f8af18a4, Context Record Address Debugging Details: ------------------ EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx FAULTING_IP: FirstHook+4cb f8cb84cb 8b08 mov ecx,dword ptr [eax] EXCEPTION_RECORD: f8af1ba8 -- (.exr 0xfffffffff8af1ba8) ExceptionAddress: f8cb84cb (FirstHook+0x000004cb) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 00000000 Attempt to read from address 00000000 CONTEXT: f8af18a4 -- (.cxr 0xfffffffff8af18a4) eax=00000000 ebx=00000000 ecx=80528d04 edx=0000000d esi=e17e0a84 edi=820da2e0 eip=f8cb84cb esp=f8af1c70 ebp=f8af1c74 iopl=0 nv up ei ng nz na po nc cs=0008 ss=0010 ds=0023 es=0023 fs=0030 gs=0000 efl=00010282 FirstHook+0x4cb: f8cb84cb 8b08 mov ecx,dword ptr [eax] ds:0023:00000000=???????? Resetting default scope PROCESS_NAME: System ERROR_CODE: (NTSTATUS) 0xc0000005 - 0x%08lx READ_ADDRESS: 00000000 BUGCHECK_STR: 0x7E DEFAULT_BUCKET_ID: NULL_DEREFERENCE LAST_CONTROL_TRANSFER: from f8cb8601 to f8cb84cb STACK_TEXT: WARNING: Stack unwind information not available. Following frames may be wrong. f8af1c74 f8cb8601 f8af1d4c 8057777f 820da2e0 FirstHook+0x4cb f8af1c7c 8057777f 820da2e0 82501000 00000000 FirstHook+0x601 f8af1d4c 8057788f 8000090c 00000001 00000000 nt!IopLoadDriver+0x66d f8af1d74 80535c02 8000090c 00000000 825b78b8 nt!IopLoadUnloadDriver+0x45 f8af1dac 805c7160 b2b0ecf4 00000000 00000000 nt!ExpWorkerThread+0x100 f8af1ddc 80542dd2 80535b02 00000001 00000000 nt!PspSystemThreadStartup+0x34 00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16 FOLLOWUP_IP: FirstHook+4cb f8cb84cb 8b08 mov ecx,dword ptr [eax] SYMBOL_STACK_INDEX: 0 SYMBOL_NAME: FirstHook+4cb FOLLOWUP_NAME: MachineOwner MODULE_NAME: FirstHook IMAGE_NAME: FirstHook.sys DEBUG_FLR_IMAGE_TIMESTAMP: 52656cdd STACK_COMMAND: .cxr 0xfffffffff8af18a4 ; kb FAILURE_BUCKET_ID: 0x7E_FirstHook+4cb BUCKET_ID: 0x7E_FirstHook+4cb Followup: MachineOwner --------- 您能说下哪个信息比较重要么 您稍微指点一下就行 |
|
[求助]关于windbg调试错误的问题
对了 我想补充一下 我的虚拟机是XP SP3的 物理机是win7的 windbg 用了网上直接下载的和WDK自带的 都不行 都是Debuggee is running...这个状态 我虚拟机的boot.ini是这么设置的:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /debug /debugport=com2 /baudrate=115200 我的windbg是创建的快捷方式 然后在属性中这么设置的:F:\驱动程序\WinDbg\windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe 在虚拟机中可以成功加载 启动也会正确显示输出信息 仅仅是调试出的问题 下面是我虚拟机设置的图片 ,尽可能多的说明 供大家判断吧 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值