首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Windows CE 系统进程外组件应用开发

这篇文章说明了如何使用 WindowS CE 6.0 系统的 DCOM ,开发 com 服务进程。向客户端提供跨进程的 COM 组件服务,以及自定义接口代理 / 存根 dll 的建立,注册。...Windows CE 镜像中需要包括 DCOM 组件服务 不幸的是由于系统空间的限制,很多基于 Windows CE 系统的 OS 都不支持 DCOM 。...需要使用 Platfom Builder 向我们的 Windows CE 镜像中添加 DCOM 。 另外必须导出支持 DCOM API 的 Windows CE SDK 开发包。...当然,在 windows XP/2000 系统中,如果我们在 COM 方法中使用 OLE 兼容的数据类型,我们可以不提供代理 / 存根 DLL 。...在机器是使用是还需注册才行。 如何调用进程外组件 ( Client 程序) 对应客户端而已,基本上和调用进程内组件没什么区别了。

79620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    windows DLL注入之注册表注入

    h) 输入法注入 3 .DLL注册表注入技术的具体实现案例: 3.1 注册表注入的原理: 在windows系统中,整个系统的配置都保存在了注册表中,我们通过修改注册表中的配置来改变系统的行为,也可以改变某个进程的某些行为...由于注册表项中的DLL 在进程创建的早期就被User32.dll加载到了进程中,User32.dll不会检测每个DLL的载入是否成功,所以调用这些DLL中的函数可能会出问题。...3.3 注意事项: 在众多的DLL注入方法中,使用注册表注入是最简单的一种方式。但是有一点要注意: 被注入的进程时64位,那么注入的DLL也应该是64位,32位对应32位。...DLL注入到使用了User32.dll的GUI程序中(GUI程序中大多使用了User32.dll)。...CUI程序大多不使用User32.dll,所以就不能使用注册表注入。 使用了User32.dll的GUI程序中(GUI程序中大多使用了User32.dll)。

    2.7K41

    3.1 DLL注入:常规远程线程注入

    DLL注入的实现方式有许多,典型的实现方式为远程线程注入,该注入方式的注入原理是利用了Windows系统中提供的CreateRemoteThread()这个API函数,该函数第四个参数是准备运行的线程,...我们将LoadLibrary()函数填入其中,这样就可以执行远程进程中的LoadLibrary()函数,进而将我们自己准备的DLL加载到远程进程空间中执行,DLL在被装载后则会自动执行初始化部分。...函数,CreateRemoteThread是Windows系统的一个函数,能够在指定的进程上下文中创建一个线程。...该函数可以使一个进程在另一个进程中执行任意代码,并返回新线程的句柄。在DLL注入中,我们可以使用该函数在目标进程的上下文中创建一个新线程,从而使我们的DLL代码被加载和运行。...lpThreadId: 如果非NULL,返回新线程的ID号。 在DLL注入中,我们可以使用它来在指定的进程上下文中执行我们的DLL代码,使其被加载和运行。

    32710

    3.1 DLL注入:常规远程线程注入

    我们将LoadLibrary()函数填入其中,这样就可以执行远程进程中的LoadLibrary()函数,进而将我们自己准备的DLL加载到远程进程空间中执行,DLL在被装载后则会自动执行初始化部分。...远程线程注入的实现可以总结为如下流程;1.OpenProcess 打开进程获取进程句柄2.VirtualAllocEx 在目标进程申请一块内存3.WriteProcessMemory 将注入DLL路径写出到内存中...函数,CreateRemoteThread是Windows系统的一个函数,能够在指定的进程上下文中创建一个线程。...该函数可以使一个进程在另一个进程中执行任意代码,并返回新线程的句柄。在DLL注入中,我们可以使用该函数在目标进程的上下文中创建一个新线程,从而使我们的DLL代码被加载和运行。...lpThreadId: 如果非NULL,返回新线程的ID号。在DLL注入中,我们可以使用它来在指定的进程上下文中执行我们的DLL代码,使其被加载和运行。

    1.1K51

    4.5 MinHook 挂钩技术

    GitHub地址: https://github.com/TsudaKageyu/minhook读者可自行下载对应的库文件,本节所使用的是MinHook_133_lib版本,并配置好对应的包含文件以及库目录...在DllMain函数中,如果是DLL进程附加事件,则执行SetHook函数,如果是DLL进程分离事件,则执行UnHook函数禁用和释放钩子。...CreateProcessW函数,在Windows操作系统中,大部分进程都是由 explorer.exe 进程派生出来的。...通过对该进程进行挂钩,即可实现监控应用层其他进程创建或销毁的目的,读者可自行使用64位库编译下方代码,并注入到explorer.exe进程中,即可实现监控进程的创建功能。...,并将其注入到explorer.exe文件中,至此当有新进程被加载时则会弹出该进程的详细路径信息,如下图所示;图片本文作者: 王瑞本文链接: https://www.lyshark.com/post/c425464c.html

    53440

    4.5 MinHook 挂钩技术

    在DllMain函数中,如果是DLL进程附加事件,则执行SetHook函数,如果是DLL进程分离事件,则执行UnHook函数禁用和释放钩子。...编译上述代码,使用注入器将hook.dll注入到特定进程内,此时点击弹窗提示会发现弹窗内容已经被替代了,如下图所示; 实现修改窗口标题 一般来说程序中的修改标题功能都是调用SetWindowTextA...程序,通过劫持程序内的CreateProcessW函数,在Windows操作系统中,大部分进程都是由 explorer.exe 进程派生出来的。...通过对该进程进行挂钩,即可实现监控应用层其他进程创建或销毁的目的,读者可自行使用64位库编译下方代码,并注入到explorer.exe进程中,即可实现监控进程的创建功能。...读者可使用x64模式编译上方代码,并将其注入到explorer.exe文件中,至此当有新进程被加载时则会弹出该进程的详细路径信息,如下图所示; 本文作者: 王瑞 本文链接: https://www.lyshark.com

    33520

    PPLcontrol:一款功能强大的受保护进程安全控制工具

    关于PPLcontrol PPLcontrol是一款功能强大的受保护进程安全控制工具,在该工具的帮助下,广大研究人员可以快速枚举出目标操作系统中受保护的进程,并获取指定进程的保护级别,或给目标进程设置任意保护级别...2、安装MSI驱动程序 注意事项:千万不要直接在你自己的本地主机中安装该驱动程序,请一定要使用虚拟机!!!...(向右滑动,查看更多) 使用API Monitor(API监控工具)审查一个受保护的进程 除了打开目标进程外,API Monitor还会向其中注入DLL。...因此,在apimonitor.exe进程上设置任意保护级别是不够的。由于注入的DLL没有正确的签名,因此目标进程的Section签名标志可能会阻止加载它。...(向右滑动,查看更多) 1、获取目标进程的进程ID,即PID; 2、使用PPLcontrol获取目标进程的保护级别; 3、取消进程保护; 4、使用API Monitor对进程执行监控; 5、恢复目标进程的保护

    82210

    3.4 DLL注入:全局消息钩子注入

    SetWindowHookEx 是Windows系统的一个函数,可用于让一个应用程序安装全局钩子,但读者需要格外注意该方法安装的钩子会由操作系统注入到所有可执行进程内,虽然该注入方式可以用于绕过游戏保护实现注入...,但由于其属于全局注入所以所有的进程都会受到影响,而如果想要解决这个问题,则需要在DllMain()也就是动态链接库开头位置进行判断,如果是我们所需操作的进程则执行该DLL模块内的功能,如果不是则自动跳过不执行任何操作即可实现指定进程的注入方式...hMod:把钩子函数插入挂钩链中的应用程序的句柄,该参数通常被设置为包含钩子函数代码的DLL模块的句柄。...在安装全局消息钩子时,读者需要在DLL中对外暴漏两个接口,其中SetHook()用于设置钩子,UnHook()则用于取消钩子,在DLL入口处,通过调用GetFristModuleName()我们可以判断当前进程是否为我们所需操作的进程...")获取到该模块的中SetHook函数的内存地址,最后直接调用SetHook()安装一个全局钩子,实现安装的代码流程如下所示; #include #include windows.h

    40020

    3.4 DLL注入:全局消息钩子注入

    SetWindowHookEx 是Windows系统的一个函数,可用于让一个应用程序安装全局钩子,但读者需要格外注意该方法安装的钩子会由操作系统注入到所有可执行进程内,虽然该注入方式可以用于绕过游戏保护实现注入...,但由于其属于全局注入所以所有的进程都会受到影响,而如果想要解决这个问题,则需要在DllMain()也就是动态链接库开头位置进行判断,如果是我们所需操作的进程则执行该DLL模块内的功能,如果不是则自动跳过不执行任何操作即可实现指定进程的注入方式...hMod:把钩子函数插入挂钩链中的应用程序的句柄,该参数通常被设置为包含钩子函数代码的DLL模块的句柄。...在安装全局消息钩子时,读者需要在DLL中对外暴漏两个接口,其中SetHook()用于设置钩子,UnHook()则用于取消钩子,在DLL入口处,通过调用GetFristModuleName()我们可以判断当前进程是否为我们所需操作的进程...DLL的程序,在调用DLL之前,我们需要通过LoadLibrary()将此模块加载到内存中,并通过GetProcAddress(hMod, "SetHook")获取到该模块的中SetHook函数的内存地址

    75330

    IE 沙箱拖拽安全策略解析

    PrivDragDrop 可以看到,最终实现拖拽操作的函数是ole32!PrivDragDrop,通过使用函数偏移硬编码函数地址,可以调用到ole32.dll中的内部函数。...当我们在IE沙箱中用鼠标进行拖拽操作时,沙箱内的IE Tab进程会通过ShdocvwBroker将数据转发给沙箱外的主进程,在主进程中完成拖拽操作。...也就是说,真正完成拖拽操作是在沙箱外的IE主进程内。两个进程的函数调用情况大致如下: IE子进程(沙箱中): MSHTML!CDoc::DoDrag -->MSHTML!...对于第一种方法,由于我们是在沙箱内,只能通过Broker接口的代理才能从沙箱中出来,进入到IE主进程的进程空间。所以我们并不能调到主进程中dll的内部函数,进而这种方法是不可行的。...IE沙箱通过在IEShims.dll中hook特定函数和借助系统的UIPI特性(Windows Vista以上)对拖拽操作进行了有效的安全限制。

    1.7K10

    Protected Process Light (PPL) Attack

    当时的要求是镜像文件(即可执行文件)必须使用特殊的 Windows Media 证书进行数字签名(如Windows Internals的“受保护的进程”部分中所述 https://docs.microsoft.com...由于 PPL 不检查已知 DLL 的数字签名,因此以后可以使用它来执行 DLL 劫持攻击并在 PPL 中执行任意代码。...此外,加载到受保护进程中的任何非 Windows DLL 都必须使用适当的证书进行签名。...DLL hijacking在PPL进程中执行任意代码 回看微软文档中关于Protecting Anti-Malware Services的内容时,可以看到具有这样描述的一句话: DLL signing...加载到受保护服务中的任何非 Windows DLL必须使用用于签署反恶意软件服务的相同证书进行签名。那么如果加载的是windows的DLL是否为不用签名?

    1.9K20

    总结到目前为止发现的所有EDR绕过方法

    用户模式中的最后一个实例是NTDLL.dll中的Windows API函数。如果调用了NTDLL.dll中的任何功能,则CPU接下来将切换到内核模式,AV/EDR就不再能够监视该模式。...您可以找到DLL文件,这些文件是通过Sysinternals procexp64.exe从AV/EDR加载到进程中的。...通过使用此方法,AV / EDR系统可以修补Windows库文件(如NTDLL.dll)的内存副本 与P / Invoke相比,D / Invoke在运行时手动加载Windows API函数,并使用指向其在内存中位置的指针来调用该函数...\System32\ntdll.dll"); OverloadMapping-除了手动映射外,存储在内存中的有效负载还由磁盘上的合法文件支持。...与以前相比,SharpBlock使用的方法有所不同。它正在创建一个新进程,并使用Windows调试API侦听LOAD_DLL_DEBUG_EVENT事件。

    9.3K31

    3.2 DLL注入:远程APC异步注入

    APC机制与DLL注入的关系在于,可以使用APC机制将某些代码注入到另一个进程中,并由该进程执行。...读者可以使用NtQueueApcThread或QueueUserAPC等函数将用户定义的函数添加到目标进程中的APC队列中,目标线程将在调用SleepEx或SignalObjectAndWait等函数时执行注入函数...但读者需要注意,注入函数必须是一个简短的、没有长时间阻塞的代码块,通常会加载DLL或者在目标线程中打开其他进程。...在DLL注入中,可以使用QueueUserAPC函数向目标进程内的线程的APC队列中插入一个我们定义的函数的指针,使该函数在目标线程执行时运行,从而实现DLL注入的目的。...; 1.WriteProcessMemory 将需要加载的DLL的完整路径写入目标进程空间 2.获得LoadLibraryA函数的地址,当然也可以是LoadLibraryW函数的地址 3.枚举目标进程中的所有线程

    35820

    3.2 DLL注入:远程APC异步注入

    APC机制与DLL注入的关系在于,可以使用APC机制将某些代码注入到另一个进程中,并由该进程执行。...读者可以使用NtQueueApcThread或QueueUserAPC等函数将用户定义的函数添加到目标进程中的APC队列中,目标线程将在调用SleepEx或SignalObjectAndWait等函数时执行注入函数...但读者需要注意,注入函数必须是一个简短的、没有长时间阻塞的代码块,通常会加载DLL或者在目标线程中打开其他进程。QueueUserAPC 函数允许将一个用户定义的函数添加到指定线程对应的APC队列中。...在DLL注入中,可以使用QueueUserAPC函数向目标进程内的线程的APC队列中插入一个我们定义的函数的指针,使该函数在目标线程执行时运行,从而实现DLL注入的目的。...;1.WriteProcessMemory 将需要加载的DLL的完整路径写入目标进程空间2.获得LoadLibraryA函数的地址,当然也可以是LoadLibraryW函数的地址3.枚举目标进程中的所有线程

    42440

    进程注入1:通过LoadLibrary注入DLL

    进程可以使用该句柄在对GetProcAddress,FreeLibrary或FreeLibraryAndExitThread函数的调用中识别DLL 该的GetModuleHandle函数返回使用的手柄GetProcAddress...如果用户可以提供缺少的DLL的完整路径,则该进程可以使用此信息来加载DLL,即使它不在常规搜索路径中也是如此。这种情况与加载时链接形成对比,在加载时链接中,如果找不到DLL,系统将简单地终止进程。...那么Dll从一开始就可以映射到进程的内存中并执行,所以我们可以利用Dll把shell注入到进程中。...构造注入程序 LoadLibrary是Windows API中的一个函数,它可以将一个DLL加载到调用进程和调用的内存中DLLMain(将指定的模块加载到调用进程的地址空间中) 使用语法 C ++ HMODULE...在TEXT()中可以确保我们使用的是正确的编码。 然后使用VirtualAllocEx 函数在指定进程中提交内存区域。

    2.5K30

    APT35 启用了新 PowerShell 后门

    △ 执行流程 解析了相关的 DLL 文件和 API 调用后,开始执行 dll.dll: △ 主要代码 攻击者应该是借鉴了 GitHub 上的公开代码片段,在运行时使用 CLR 运行 PowerShell...dll.dll dll.dll是一个 .NET 编写的 AES 解密程序,使用硬编码密钥 ()*&3dCfabE2/123解密另一个名为 upc的文件,最终执行 PowerShell 代码。...△ 进程检测 但当后门接收到终止进程的命令时,后门反而会生成 powershell.exe` 进程。 △ 部分代码 代码中存在大量拼写错误和语法错误,可以认为后门开发者的母语并非英语。...△ 日志拼写错误 键盘记录 PowerLess 后门能够下载的其中一个模块就是使用 .NET 编写的键盘记录工具: △ 部分代码 键盘记录的日志存储在 “C:\\Windows\\Temp\\Report...读取 Chrome 和 Edge 浏览器的数据库文件,加密后以 JSON 格式写入文件中。 △ 部分代码 日志存储在 C:\\Windows\\Temp\\cup.tmp。

    1.1K30

    CC++ 通过中转函数实现DLL劫持

    当我们运行程序时,一般情况下会默认加载Ntdll.dll和Kernel32.dll这两个链接库,在进程未被创建之前Ntdll.dll库就被默认加载了,三环下任何对其劫持都是无效的,除了该Dll外,其他的...Dll都是在程序运行时,在输入表中查找到对应关系后才会被装载到内存中的,理论上来说对除NtDll以外的其他库都是可操作的。...当指定DLL需要加载时,系统会首先查询该表中是否存在有缓存数据,如果有则就直接调用NtMapViewOfSection函数将其映射到特定进程的内存中,如果没有则就需要根据如下顺序动态的查找。...先查找,正在加载DLL进程的可执行目录。 查找系统的system32目录下是否存在。 查找,正在加载DLL进程的当前目录。 Path环境变量中的定义。...时直接将请求转发到我们自己的DLL中,我们的DLL再将请求转发到真实的DLL上面,使用本节课的小工具可以快速构建转发函数表,执行如下命令即可:GenEAT.exe -d c://lyshark.dll

    1.1K10

    DLL攻击漫谈

    动态链接库(DLL)的方式以及Windows API指示使用它们的方式都可以用作任意代码执行的接口,并协助恶意行为者实现其目标。 动态链接库是Microsoft实施共享库的产品。...DLL主要用于在系统上的应用程序和进程之间共享此内容,以便在为Windows创建应用程序时为程序员提供高度的灵活性。 DLL以相同的访问权限在调用过程的内存中执行。...使用Windows操作系统时,进程加载算法的关键步骤包括将动态链接库(DLL)加载到内存中,以利用其功能并满足其进程与DLL之间的依赖关系。每当启动进程时,都会发生此操作。...我们可以使用一个“ DLLicious”的工具(https://github.com/J3wker/DLLicous-MaliciousDLL)来快速编译包含的shell的DLL 用法 用法非常简单,只需使用...通过使用PowerShell和DLL代码中包含的NetCat的反向Shell 并尝试与kali上的侦听器联系,然后使用PowerShell打开shell 我们可以看到执行劫持的进程后,将加载DLL并打开

    1.3K10

    Bypass-UAC(用户帐户控制)的那些事

    常见的利用方式有: DLL注入(RDI技术),一般注入到常驻内存的可信进程,如:explorer DLL劫持,常和注册表配合使用达到劫持目的 DLL劫持 exe文件运行时会加载许多dll文件,这些dll...COM接口的ShellExec执行命令的时候,因为执行该操作的进程身份是不可信的,所以会触发UAC弹窗。...2.Windows权限提升绕过UAC保护(内存注入) 此模块将通过进程注入使用可信任的发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。...在普通技术中,该模块使用反射式DLL注入技术并只除去了DLL payload 二进制文件,而不是三个单独的二进制文件。但是,它需要选择正确的体系架构(对于SYSWOW64系统也使用x64)。...5.Windows权限升级绕过UAC保护(通过COM处理程序劫持) 此模块将通过在hkcu配置单元中创建COM处理程序注册表项来绕过Windows UAC。

    1.9K20
    领券