|
[讨论]大家来讨论下禁止PE系统启动
装Vista的话,winpe1.0是改不了密码的,2.0没用过,就不知道了 |
|
[讨论]大家来讨论下禁止PE系统启动
用vista |
|
[求助]请教用OD修改堆栈后保存问题
看看哪里入栈,改对应的代码 |
|
[求助]请教用OD修改堆栈后保存问题
动态生成的,堆栈内容不能这样保存 |
|
|
|
[讨论]为什么要用DEBUG调试而不选择OD呢
你厉害,我老了 |
|
[讨论]为什么要用DEBUG调试而不选择OD呢
不懂历史呀!16位要用16位的,教科书上一般用16位的讲解,16位的debug好用的有td,cup386.陋见,勿笑 |
|
[求助]关于中断dos中断指令int 21h
http://bbs.pediy.com/showthread.php?t=92911 |
|
[求助]请教fld指令的问题
TBYTE type! |
|
|
|
[求助]CD防拷, 新人求助
把碟扫描一下,传个图片吧 |
|
[注意]会员年龄调查
同龄,同感! |
|
[求助]关于IoAllocateMdl()函数的疑惑
这是网址http://www.codeproject.com/KB/system/NoDeleteDelay.aspx 大概意思是删除文件和文件夹时,经常等待那么几秒后有可能会出现个对话框说不能删除吗?它做的就是改写shell32.dll的代码使之不等那么几秒马上就出来对话框。看了之后有很多问题不是很明白。望哪位帮帮我啊。我下面加了点注释,不知道理解的对不。哪位好心人帮忙纠正。这都是在DriverEntry()函数里的。原理是一些KnownDLL的所有DLL,系统都会为它们建立一个Section object。之后哪个进程建立时就会映射到本进程中。下面的代码先根据对象 名字得到句柄,然后映射到本进程也就是System进程中,返回shell32.dll的基址(注意它在用户空间), RtlInitUnicodeString(&us, L"\\KnownDlls\\shell32.dll"); InitializeObjectAttributes(&oa, &us, OBJ_KERNEL_HANDLE, NULL, NULL); status = ZwOpenSection(&hSection, SECTION_MAP_READ, &oa);//在system进程的句柄表中加入一项HANDLE_TABLE_ENTRY结构,并且返回节对象的句柄 // Get a pointer to the section status = ZwMapViewOfSection( hSection, NtCurrentProcess(), &pSection, 0, 0, 0, &viewSize, ViewShare, 0, PAGE_READWRITE );//映射到system进程的用户虚拟地址空间来(注意返回pSection是shell32.dll的映射基址)在我的系统是7D590000 pWordToChange = (PULONG)(pSection + pCurrentPatchInfo->offset);//这是我们要Patch的地址(也是在用户空间) // Create a Memory Descriptor List (MDL) for the virtual address at "pWordToChange" pCurrentPatchInfo->pMdl = IoAllocateMdl(pWordToChange, sizeof(ULONG), FALSE, FALSE, NULL);//这个函数真正的是干什么用的?我这样理解的,建立一个MDL,描述pWordToChange开始的4个字节。 // Lock the pages in memory and get a pointer to the "pWordToChange" in its // kernel-memory-mapped location MmProbeAndLockPages(pCurrentPatchInfo->pMdl, KernelMode, IoReadAccess);//这个函数也不懂,是不是把system进程的虚拟地址从pWordToChange—pWordToChange+4到的这段虚拟地址所对应的物理页锁进内存,防止Swap Out。(也就是KnownDlls\\shell32.dll节对象真正的物理页)。 pCurrentPatchInfo->pMapped = (PULONG)MmGetSystemAddressForMdlSafe(pCurrentPatchInfo->pMdl, NormalPagePriority);//得到系统地址,并且它是在系统空间中,这个地址是不是最后根据页表也映射到了KnownDlls\\shell32.dll节对象真正的物理页。因此我们根据这个地址改写了shell32.dll的内容。改写的是真正的物理页。之后如果有进程要用shell32.dll。系统再映射它。(注意此时映射的也就是刚刚改写的物理页了)(不是很懂啊。这是我的想法,不知道对不。哪位帮忙啊) // Here's where we actually do the patching for (pCurrentPatchInfo = offsets; pCurrentPatchInfo->offset != 0; pCurrentPatchInfo++) { // Do the patch *pCurrentPatchInfo->pMapped = newBytes; DbgPrint( "Offset %08X at VA %08X changed to %08X\n", pCurrentPatchInfo->offset, pCurrentPatchInfo->pMapped, *pCurrentPatchInfo->pMapped ); // If we're unloading (i.e. DoPatch(FALSE)), we'll unmap and unlock the memory if (!isLoading) { MmUnmapLockedPages(pCurrentPatchInfo->pMapped, pCurrentPatchInfo->pMdl); MmUnlockPages(pCurrentPatchInfo->pMdl); IoFreeMdl(pCurrentPatchInfo->pMdl); } } } |
|
[求助]如何分析硬盘固件
没弄过,只是好奇,猜测应该和具体的控制器有关吧! |
|
Delphi 6.0 - 7.0编写的程序RC数据可能被压缩或者加密如何破解?
object logoFlash: TShockwaveFlash Left = 0 Top = 1 Width = 325 Height = 223 TabOrder = 1 OnFSCommand = logoFlashFSCommand ControlData = { 从上可见数据似乎是flash |
|
[求助]谁帮翻译一下俄文文本
试了一下,的确有一点难度。 先下载,用ie打开,编码选西里尔文DOS,再复制,贴到google中点翻译即可,结果如下: - Put Pulsoniks (hereinafter "program"). - Unpack the enema in a separate folder and run. - Received lic-file to write to the folder with the "pro". - Прогу start, choose litsenziyu, enjoy.(这句似乎应该是start program, ...) 看了一下结果并不如人意,英语不好,但是看到竟然还有似乎非英语的东西,不懂俄语只好将就吧! |
|
[求助]OD载入程序后出现问号是什么原因?
OD反汇编解码错误,可能的原因有:1.0057901E处的调用中有解码;2.从上下文(0057902C 75 13 jnz short 00579041 0057902F EB 45 jmp short 00579076)看似乎00579031到00579041就不是代码。 |
|
[求助]OllyDBG 入门系列6 在哪里?
原作者本身就没写 |
操作理由
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 }}
勋章
兑换勋章
证书
证书查询 >
能力值