Articles of kernel32

ASLR和Windows系统DLL的非感知可执行文件?

从微软的文章 : 地址空间布局随机化(ASLR) 当系统引导时,ASLR将可执行映像移动到随机位置,使得利用代码难以可预测地运行。 对于支持ASLR的组件,它所加载的所有组件也必须支持ASLR。 例如,如果A.exe使用B.dll和C.dll,则三者都必须支持ASLR。 默认情况下,Windows Vista和更高版本将随机化系统DLL和EXE ,但由ISV创build的DLL和EXE必须select使用/ DYNAMICBASE链接器选项来支持ASLR。 我不太明白。 以WIndows上的每个进程加载基本系统DLL: NtDll.dll和kernel32.dll 。 如果有一个不知道的可执行文件,这些系统DLL会使用ASLR吗? 也就是说,在Win 7上每次系统重新启动后,它们会在这个可执行文件中加载到不同的基地址,还是像Win XP一样在系统重启之后总会加载相同的基址? 为了更清楚我的意思:我典型的虚拟程序的启动堆栈如下所示: write_cons.exe!wmain() Line 8 C++ write_cons.exe!__tmainCRTStartup() Line 583 + 0x19 bytes C write_cons.exe!wmainCRTStartup() Line 403 C > kernel32.dll!_BaseProcessStart@4() + 0x23 bytes 看看BaseProcessStart的asm,我在我的XP机器上看到: _BaseProcessStart@4: 7C817054 push 0Ch 7C817056 push 7C817080h 7C81705B call __SEH_prolog (7C8024D6h) 7C817060 and dword ptr […]

如何从hWnd for Windows 10 Store应用程序(例如Edge)获取“应用程序名称”

我正在尝试为Windows 10应用程序获取可理解的“进程名称”。 目前,他们都使用ApplicationFrameHost ,所以我认为我可以使用ModelId或PackageName ,但似乎Windows 10商店应用程序(我尝试使用Mail , Store和Edge )将无法使用包查询API 使用kernel32.dll , GetApplicationUserModelId返回APPMODEL_ERROR_NO_APPLICATION , GetPackageId返回APPMODEL_ERROR_NO_PACKAGE 。 我如何获得Windows 10商店应用程序的标识符,以便我可以唯一标识Edge ,还有其他任何Windows 10商店应用程序? 更新 我从hWnd (窗口句柄)获取进程ID,所以我认为我的问题实际上是如何从窗口句柄中获取“真实”进程ID。 从那里,使用这些方法可能会奏效。

应用程序错误:故障地址0x00012afb(专家)

我需要一些“光”来获得解决scheme。 可能有很多事情会导致这个问题,但也许有人可以帮助我。 场景:运行24/7全天候运行PostgreSQL数据库和其他服务器应用程序的Windows服务器(用于处理数据库上的任务等)。 有不同的服务器场景(〜30),不同的硬件和Windows版本(XP SP3 / WinServer等…所有基于NT)。 所有的应用程序都是用Delphi7编写的,并链接到DLL(也在D7中)。 经过几天(有时一周,有时几个月),Windows开始变得奇怪,就像不打开开始菜单一样,在对话框中缺less一些button。 不久,一些应用程序不能打开,在eventviewer上引发一个事件: Faulting application x, version y, faulting module kernel32.dll, version 5.1.2600.5781, fault address 0x00012afb 同时,其他应用程序打开罚款,如记事本,iexplore等…但我的一些应用程序不,只有事件日志上面描述。 但是,如果我们不重新启动系统,在几天内甚至cmd.exe停止打开,(和所有其他应用程序)在eventlog上具有相同的错误。 我试图find“什么”可以导致这个,但没有成功。 所以,任何build议都会受到欢迎。 提前致谢。

我们可以rebase kernel32.dll吗? 这样两个进程的加载地址是不同的

具体来说,我想知道kernel32.dll加载地址可以是不同的两个进程在同一个会话? 我想使用createremote线程,所以只想知道远程进程中的kernel32加载地址是否可以不同于注入进程在任何情况下?

错误应用程序<app_name>,版本<版本号>,错误模块kernel32.dll

我有一个Windows应用程序构build使用C#和.net框架2.0,并安装在Windows Server 2003上。 我testing了我的机器上的应用程序,它在我的机器上完美地工作。 两台机器之间的区别仅在于,我的机器具有Windows Vista操作系统,而发生错误的机器具有Windows Server 2003操作系统。 当我启动应用程序时,它可以正常工作一段时间,但随后出现一个错误 错误的应用程序,版本,错误模块kernel32.dll,版本5.2.3790.4480,邮票,debugging? 0.故障地址0x000bef7。 来源:.NET运行时2.0错误类别:无事件ID:1000 有谁知道为什么这个错误来了? 我GOOGLE了这个错误,但大部分的解决scheme是为explorer.exe或Internet Explorer。

SetSystemTime kernel32中的奇怪行为

我有以下代码: Public Class SetSystemTime Structure SYSTEMTIME Public wYear As Short Public wMonth As Short Public wDayOfWeek As Short Public wDay As Short Public wHour As Short Public wMinute As Short Public wSecond As Short Public wMilliseconds As Short End Structure Public Declare Function SetSystemTime Lib "kernel32" (ByRef lpSystemTime As SYSTEMTIME) As Boolean End Class Private […]