首页
学习
活动
专区
圈层
工具
发布

为什么 WPF 软件在 win7 启动时会尝试调起 wisptis 进程

我看到一个问题是在 win7 系统上,如果开机启动的软件是 WPF 软件,而这个 WPF 软件在系统的 wisptis 进程启动之前就启动了,那么 WPF 将会调起 wisptis 进程。...而在 wisptis 进程已经启动完成,此时启动 WPF 进程不会再打开新的 wisptis 进程。...但是被 WPF 启动的 wisptis 进程存在这样的问题,在触摸屏上 win7 的双指打开右键菜单等功能不可用 在 WPF 启动时,将会在 Window 类的 Visibility 修改时调用到 WispLogic.RegisterHwndForInput...方法进行初始化触摸,这部分详细请看 WPF 触摸到事件 而在初始化触摸时,需要用到 PenIMC 的逻辑 在 win7 系统上,触摸需要通过 wisptis 进程的辅助才能让 WPF 进程能够完成实时触摸...wisptis 进程的启动 而为什么 WPF 启动的 wisptis 进程有很多坑?

1.2K20

Shellcode 技术

在大多数情况下,我们将使用直接系统调用来绕过可疑 WINAPI 调用的两个 EDR 挂钩(请参阅第 7 节),但对于不太可疑的 API 调用,此方法工作得很好。...ETW 允许对进程的功能和 WINAPI 调用进行广泛的检测和跟踪。...当我们在加载器进程空间的线程中运行 shellcode 时,更容易混入进程中良性线程执行和内存操作的噪音。然而,不利的一面是任何崩溃的开发后模块也会导致加载程序的进程崩溃,从而导致植入程序崩溃。...10.信标内存加密 内存检测的另一个规避方法是在休眠时加密植入程序的可执行内存区域。...BokuLoader 实现了几种规避技术: 限制调用GetProcAddress()(通常 EDR 挂钩 WINAPI 调用来解析函数地址,就像我们在第 4 节中所做的那样) AMSI & ETW 绕过

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

    如何使用LightsOut生成经过混淆处理的DLL

    该工具专为红队研究人员设计,生成的DLL可以在研究人员尝试绕过反病毒产品时禁用AMSI和ETW,从而更好地测试目标系统的安全性。...该工具可以随机化DLL中所有的WinAPI函数使用、XOR编码字符串和基础的沙箱检测,并使用了Mingw-w64将经过混淆处理的C代码编译为DLL文件,然后再加载到任何有AMSI或ETW的进程中,例如PowerShell...功能介绍 当前版本的LightsOut提供了下列功能: 对字符串进行XOR编码; WinAPI函数名称随机化; 支持多种沙箱环境检测选项; 提供硬件断点绕过选项; 工具要求 当前版本的LightsOut...仅支持在Linux操作系统上运行,且需要安装并配置好下列组件: Python 3 Mingw-w64 工具下载 由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python...存储输出DLL的文件路径 Remote options: -p , --pid 要修补的远程进程

    63110

    分析两种Dump(崩溃日志)文件生成的方法及比较

    做windows产品开发的,永远绕不开一个问题——程序崩溃。如果希望不断提升产品质量,就得不停的收集和分析崩溃日志。但是我们会发现一个问题,我们经常采用的方案无法拦截崩溃。...当软件即将崩溃时,我们设置的回调函数理论上会被调用。然而,实际并非如此。我们看一个报错的例子。 ?         如果你也见过这个错误,我想你的截取dump方案应该是被绕过了。...现在,我们开始分析,为什么SetUnhandledExceptionFilter无法截获这些CRT错误。...从上面可以分析出,当出现异常时,流程会进入UnhandledExceptionFilter,但是我们设置的回调函数没被调用。...需要注意:当运行到75BF771D时,我们要将执行路径指向75BF7723。

    2.2K20

    “兵不厌诈”?漏洞还是那些漏洞,攻击技术却层出不穷

    从一开始,犯罪分子就尝试绕过DEP,并且他们已经使用不同的技术成功地绕过了一段时间,其中一种技术就是返回导向编程 (ROP)。 网络犯罪分子使用ROP链(来自现有合法代码部分的一小段)来构建工作代码。...如果WinAPI函数没有用call指令调用,则堆栈上的返回地址将是错误的。 当系统找不到呼叫指令时,更为有效的网络保护解决方案将终止ROP攻击。...由于一个镂空进程是在挂起状态下创建的,它的内存被取消映射并被恶意代码替换。恶意代码的执行在合法进程下被掩盖,通常会绕过普通的安全产品的防御和检测分析。...当父进程创建子进程时,子进程继承SID。这需要在应用程序加载期间进行检查,因为用户可从中发现恶意活动。在流程执行期,SID不能被更改。...对于敏感功能,漏洞利用防护软件也会检查SID在执行过程中是否保持不变。

    68930

    在函数内定义一个字符数组,用 gets 函数输入字符串的时候,如果输入越界,为什么程序会崩溃?

    在C语言中,使用gets函数输入字符串时,如果输入的字符串长度超过了字符数组的边界,程序可能会崩溃。...缓冲区溢出的原因数组越界:当输入的字符串长度超过字符数组的容量时,gets函数会继续将多余的字符写入数组之外的内存区域。...这些额外的字符可能会覆盖相邻的变量、函数返回地址或其他重要数据,导致程序行为异常或崩溃。栈溢出:如果字符数组是在栈上分配的,超出数组边界的写操作可能会覆盖栈上的其他数据,包括函数的返回地址。...这种情况下,当函数返回时,程序会尝试跳转到一个无效的地址,从而导致崩溃。...总结使用gets函数时,如果输入的字符串长度超过字符数组的容量,会导致缓冲区溢出,进而可能引起程序崩溃。为了确保程序的安全性和稳定性,建议使用fgets等更安全的函数来替代gets。

    1.1K10

    Understanding-and-bypassing-AMSI

    ,它有一些基本的实现缺陷,使得我们可以绕过检测 从下图中您可以看到AMSI阻止了字符串"Invoke-Mimikatz",尽管该字符串不在恶意上下文中,但它仍然被检测到,那么这究竟是如何运作的呢?...微软通过将amsi.dll加载到创建的每个进程中,这些进程会导出一些功能供防病毒和EDR使用,以及Windows Defender 查看amsi.dll中的导出结果发现一个看起来很有趣的函数AmsiScanBuffer...amsiscanner/blob/master/amsiscanner.cpp 我们现在有了一个测试AmsiScanBuffer的workstations,这意味着我们可以通过实现类似于挂接MessageBox时使用的东西来尝试本地挂接...,让我们尝试添加以下代码 #include #include #include #include #include...AMSI不会标记真正的字符串 如果我们使用调试器,我们实际上可以在反汇编AmsiScanBuffer的前几条指令时查看detours库在做什么,在我们注入之前我们得到以下信息 然后在注入之后,我们现在有一个跳转指令

    64810

    监视的最低点(4)

    根据他们的网站,任何因任何原因无法使用相应软件的学生,无论是不兼容还是软件问题,都可以在“严格监督”下参加考试,这使得懒惰绕过超级容易:从您的机器中删除其依赖项并且它将无法运行 :) 部署依赖于ClickOnce...但是告诉你这将是一个非常无聊的结论,所以我们决定编写一个完整的原生绕过,本质上是一个 x86 用户模式 rootkit,来隐藏你在考试中使用的任何厚颜无耻的网站。你可能会问,我们为什么要这样做?...有人需要为这个软件的绝对灾难负责,教育部需要透明地说明他们在做什么以及为什么需要在个人机器上安装这个软件才能参加。...正如我们在视频游戏中为防止反作弊软件截屏所做的那样,我们可以在执行截屏之前挂钩 BitBlt 并隐藏任何不需要的信息。...NtQuerySystemInformation系统调用在内部缓存进程数据。对这个系统调用隐藏进程需要一些工作,因为许多信息类型都包含进程信息。

    4.8K260

    COM 进程注入技术

    由于 Rust 里面接口、类全部都以 struct 的形式表达,并且和 C++ 中的 struct 内存布局是有区别的,所以在定义接口虚表时,全部需要加上 #[repr(C)],代表该结构体内存布局和...C 里面有 IUnknown,Rust 里也不需要我们从 IUnknown 开始实现,实际上在 windows-rs 和 winapi 这两个 crate 中都有实现,但是实现方式上有所不同。...已经解决的问题 原项目运行后可能会遇到一些问题,在重写时简单处理了一下,问题如下: A、在获取目标进程 IPID 列表偏移时,判断条件不够导致后续步骤访问到错误地址导致崩溃 我在 find_ipid_table...所以我在获取接口指针时,加了些过滤,优先使用 TID 有效的 IPID: let x: Vec = entries.iter().filter(|x| x.ipid.tid > 0x0 && x.ipid.tid...,不确定为什么会自动释放掉,当用完之后就会一直注入失败了 对于 TID 为 0x0000 或 0xFFFF 时总是注入失败,怎么解决 通用于 x86 和 x86_64 的 COM 进程

    2.4K30

    红队技巧:绕过ESET_NOD32抓取密码

    聊一聊绕过ESET_NOD32抓取密码的方法,这里的ESET_NOD32指的是ESET_NOD32 File Security For Microsoft windows server,测试版本如下...而权限提升可以使用RtlAdjustPrivilege来进行,这个函数封装在NtDll.dll中,MSDN没有专门的文档介绍它,就是说你在MSDN上查不到关于它的任何信息,但是可以在微软官方的WRK(Windows..., BOOLEAN Enable, BOOLEAN CurrentThread, PBOOLEAN Enabled ) 剩下的将刚才所说的函数进行实现,demo如下: typedef HRESULT(WINAPI...* _MiniDumpW)( DWORD arg1, DWORD arg2, PWCHAR cmdline); typedef NTSTATUS(WINAPI* _RtlAdjustPrivilege...)( ULONG Privilege, BOOL Enable, BOOL CurrentThread, PULONG Enabled); 最后成功的绕过了绕过ESET_NOD32 dump了进程

    1.2K40

    LetMeowIn – 凭证转储程序分析

    LetMeowIn 宣称其具备一些额外的隐身和规避功能,使其能够绕过常见的端点安全产品,例如 CrowdStrike Falcon 和 Microsoft Defender。...调用该数组时,LetMeowIn 会调用一个名为 unASCIIme 的函数,该函数将数组解码为字符串形式的 WinAPI 函数名称。...Dump文件的反分析 在将转储文件写入磁盘之前,LetMeowIn 会运行一个名为 GenerateInvalidSignature 的函数来破坏文件的 MDMP 签名。...对 NtTraceControl 调用量大的进程 LetMeowIn 会重复注册事件提供程序,直到达到进程的最大提供程序数量,因此查询包含 2048 个提供程序的进程将无法获得正确的结果。...事件 ID 4663:尝试访问。 事件 ID 4658:句柄已关闭。

    71210

    bypass Bitdefender

    前言 渗透时,可能会遇到各种各样的的杀软,但每个杀软特性不同,在绕过前,往往都需要分析,本文就Bitdefender进行分析 最近在研究如何免杀,写了一个马,火绒 360 成功绕过(图有点少,当时没存...这表明Bitdenfender认为我的exe没有问题,他这里报毒指的是explorer中有cs的马,这属于绕过内存扫描的内容,hook层面已经绕过完成(了吗?)...我一开始以为是动态扫描出我的马,但我发现Bitdefender的反应很快,我想到卡巴斯基,马可以上线大概5秒,毕竟扫描也需要时间,但为什么这里一瞬间就挂了,我猜想是Bitdefender监控到了explorer...尝试unhook,硬编码为4C 8B D1 B8 26 代码: LPVOID ZwOpenProcess_Address = GetProcAddress(hNtdll, "ZwOpenProcess"...我又重新使用http的beacon的payload测试一下,直接给我杀了 总结一下这几天绕过杀软的心得: 国产的杀软先不说了,卡巴斯基我在分析的时候发现他似乎并没有hook API,包括静态检测这些方面甚至我不用混淆都能过

    47310

    【Rust调用Windows API】获取正在运行的全部进程信息

    前言WIndows API官方文档 提供了C++的调用示例,最近想尝试用Rust去实现,本系列博客记录一下实现过程。...依赖Rust调用Windows API需要引入依赖winapi,在Cargo.toml中添加依赖winapi = "0.3.9"调用不同的API集就需要使用相应的功能features,很好的一个判断方式是你在微软官方文档中看到的是在哪个头文件内...结构体做一个包装,这里是为了节省不必要的计算,从句柄中直接读取出来的 PROCESSENTRY32 并不是所有信息都是Rust直接可读的,在需要时才解析,并且通过getter方法读取数据更方便以后拓展...fn get_priority_base(&self) -> i64 { self.inner.pcPriClassBase as i64 } /// 获取优先权类别,如果调用进程没有指定权限可能会获取失败...接口特殊情况处理:如果用户并没有迭代完,上面的代码实现可能会出现快照句柄未释放的情况,所以还需要给迭代器实现一个Drop特征,在释放迭代器时释放快照句柄impl Drop for ProcessInformationIterator

    1.6K20

    令牌模拟

    在开始之前并作为提醒,Microsoft Windows 操作系统中的令牌是一种安全元素,当进程和线程想要对安全系统对象(文件、注册表、服务......)执行操作时,它为它们提供标识。...能够窃取令牌的通用公式通过: 访问远程进程(Winapi Openprocess调用)。 访问您的令牌。 在我们正在运行的进程的当前线程上设置该令牌,即模拟。...当我们面对 PPL(受保护的进程)类型的进程时,这将非常有用。 至于启用SeDebugPrivilege,我们不需要,我们会看到原因。...开放进程() 当我们调用此函数时,操作系统会根据与“进程”对象关联的 DACL 集验证请求的访问类型,以允许或不允许访问其处理程序。...在超过一半的进程中没有必要为此使用SeDebugPrivilege,因此我们的操作会更加不被注意。

    1.7K10

    Windows 反消息钩子(1)

    local类型的钩子函数只能拦截本进程的消息。能够拦截本进程以外的消息的钩子,都是remote类型。remote类型的钩子必须放在DLL里面。...") g_hhookKey为键盘钩子的句柄,为确保此数值在所有实例中均保持不变,将其存放于此模块所有实例的共享数据区,若在exe程序中按此格式添加一int 变量 appNum,在程序启动时...不要以为自己没有在程序中安装钩子,程序中就一定没有安装钩子,在MFC4版本中,MFC会自己装一个local类型的钩子,MFC7版本中好像没了。好了,下面介绍其实现。...中卸载remote类型消息钩子时,删除其句柄 2、在.cpp文件中添加代码 CArray array;//用于记录本进程安装的钩子的句柄...同理也可以绕过API钩子!有同样兴趣的人记得发消息给我哦! 首先声明一下:我拦截的是消息钩子,如果安装钩子时考虑到了反卸载则不在讨论之内。

    78520

    bypass Bitdefender

    渗透时,可能会遇到各种各样的的杀软,但每个杀软特性不同,在绕过前,往往都需要分析,本文就Bitdefender进行分析 最近在研究如何免杀,写了一个马,火绒 360 成功绕过(图有点少,当时没存,火绒测试是用的同学的物理机...这表明Bitdenfender认为我的exe没有问题,他这里报毒指的是explorer中有cs的马,这属于绕过内存扫描的内容,hook层面已经绕过完成(了吗?)...[image.png] 我一开始以为是动态扫描出我的马,但我发现Bitdefender的反应很快,我想到卡巴斯基,马可以上线大概5秒,毕竟扫描也需要时间,但为什么这里一瞬间就挂了,我猜想是Bitdefender...[image.png] 尝试unhook,硬编码为4C 8B D1 B8 26 代码: LPVOID ZwOpenProcess_Address = GetProcAddress(hNtdll, "ZwOpenProcess...[image.png] [image.png] 我又重新使用http的beacon的payload测试一下,直接给我杀了 [image.png] 总结一下这几天绕过杀软的心得: 国产的杀软先不说了,卡巴斯基我在分析的时候发现他似乎并没有

    95540

    消息钩子的反拦截

    g_hhookKey为键盘钩子的句柄,为确保此数值在所有实例中均保持不变,将其存放于此模块所有实例的共享数据区,若在exe程序中按此格式添加一int 变量 appNum,在程序启动时...不要以为自己没有在程序中安装钩子,程序中就一定没有安装钩子,在MFC4版本中,MFC会自己装一个local类型的钩子,MFC7版本中好像没了。好了,下面介绍其实现。...同理也可以绕过API钩子!有同样兴趣的人记得发消息给我哦! 首先声明一下:我拦截的是消息钩子,如果安装钩子时考虑到了反卸载则不在讨论之内。...从上面的讨论我们可以得出一个最简单的防侵入方案:在加载hook dll之前hook相应api使得加载失败,不过有一个缺陷:系统并不会因为一次的失败而放弃,每次有消息产生欲call hook时系统都会试图在你的进程加载...::GetProcAddress(::GetModuleHandle(“kernel32.dll”), “SetWindowsHookA”); 就可以绕过。

    1K30

    BOF及cna插件开发初探

    可以在beacon中执行内部的beaconAPI和Win32API。它的体积很小,在beacon进程内部运行,不会创建新进程,所以可以有效的规避一些EDR。...,就能够在项目目录里看到obj文件 功能实现 首先了解一下动态函数解析(DFR) 比如我们要获取当前用户名,在Win32API中就要调用GetUserNameA,我们使用DFR就是要变成如下格式 DECLSPEC_IMPORT...DWORD WINAPI ADVAPI32$GetUserNameA(LPSTR, LPDWORD); DECLSPEC_IMPORT:导入函数的关键字 WINAPI:函数调用约定,一般API函数都是这个...void main(int argc, char* argv[]) { } #endif 于此我们也可以发现,go函数就是bof执行的入口,当在cs的beacon上执行inline-execute时就会调用...bof绕过杀毒添加用户 我们在cs上直接利用net user会被阻止 但是我们如果采用bof的方式就能够绕过 代码如下 #include #include

    69310
    领券