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

记联软 UniAccess 导致 NSIS 安装包启动进程失效

本文记录联软 UniAccess 注入的 C:\Window\LVUAAgentInstBaseRoot\syswow64\MozartBreathCore.dll 导致 NSIS 安装包启动进程失效,...且给出 NSIS 安装包脚本的规避方法 特别感谢 lsj 定位到此问题,我只是帮助他记录问题的工具人 联软 UniAccess 是一款监控电脑设备的应用,在很多公司都会使用。...然而通过 ProcessMonitor 看到是 QueryOpen 了 D:\Program 文件 右击看是调用 D:\Program 文件的堆栈,如下图 从图片可以看到,从 nsExec.dll 里面居然进入了...,记录的日志也都是完成启动进程 其实以上的 NSIS 脚本还是有一刀的,那就是传入的参数是没有给带空格的路径加上引号。...,将 {PATH_MAIN}\lindexi.exe 使用引号来解决 {PATH_MAIN} 是存在空格的 D:\Program Files (x86)\lindexi 路径导致联软 UniAccess

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

    超详细之dll劫持+打包钓鱼详细教程

    注册表中没有SciLexer.dll。进程notepad调用到了SciLexer.dll。说明SciLexer.dll可能存在dll劫持。...2.可以使用dll注入工具,进行劫持文件 2.1dll注入工具 图片 2.2使用InjectProc注入 InjectProc --dll注入工具 https://github.com/secrary/...采用PE查看器,把上述shellcode生成的dll中的函数导入到exePE表中。...把EXE放入到PE查看中-->选择函数-->随便选择一个右键Add New Import DLL选择->选择函数->添加到列表->输入表列表中选中刚刚添加到内容,最后点击添加即可。...图片 图片 图片 3.4上线 图片 4 nsis重新打包 上述完成后,本地劫持完成,这里使用nsis重新打包,进行钓鱼。 4.1准备工作 源安装包 源文件的ico图标提取。

    3.5K50

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

    Dll不能直接运行,应用在从DLL调用函数的方法之一是通过运行时动态链接,即将DLL加载到程序的进程空间中以便可以调用其导出的函数时。...进程可以使用该句柄在对GetProcAddress,FreeLibrary或FreeLibraryAndExitThread函数的调用中识别DLL 该的GetModuleHandle函数返回使用的手柄GetProcAddress...使用DLL_PROCESS_ATTACH调用DLL入口点函数的线程不会使用DLL_THREAD_ATTACH调用DLL入口点函数。...请注意,只有在进程加载DLL之后创建的线程才使用此值调用DLL的入口点函数。使用LoadLibrary加载DLL时,现有线程不会调用新加载的DLL的入口点函数。...但是需要调用一个导出的函数来运行我们的DLL,但是由于上面的代码不会导出任何函数,因此我们构造一个伪函数 #1: C:\Windows\System32\rundll32.exe LoadLiBrary-inject-Dll.dll

    3.1K30

    实战 | DLL劫持思路和研究

    LoadLibrary和LoadLibraryEx一个是本地加载,一个是远程加载,如果DLL不在调用的同一目录下,就可以使用LoadLibrary(L"DLL绝对路径")加载。...但是如果DLL内部又调用一个DLL,就需要使用LoadLibraryEx进行远程加载,语法如下 LoadLibraryEx(“DLL绝对路径”, NULL, LOAD_WITH_ALTERED_SEARCH_PATH...函数,这里跟过去看看 Load函数首先把libuvOrg.dll即原来的dll文件写入缓冲区,使用LoadLibrary展开后通过wsprintf与原dll进行判断,如果LoadLibrary成功则继续调用...,其实就是调用了原来dll的某个函数。...但是即时调用实际上是调用了劫持dll的某个函数,只不过那个函数会jmp到原本的dll中的相应函数的地址。达到的效果相同,但是实现的原理不同。

    3.4K20

    最新dll劫持详解

    Windows操作系统通过“DLL路径搜索目录顺序”和“Know DLLs注册表项”的机制来确定应用程序所要调用的DLL的路径,之后,应用程序就将DLL载入了自己的内存空间,执行相应的函数功能。...(L"DLL绝对路径")加载。...但是如果DLL内部又调用一个DLL,就需要使用LoadLibraryEx进行远程加载,语法如下 LoadLibraryEx(“DLL绝对路径”, NULL, LOAD_WITH_ALTERED_SEARCH_PATH....png] 这里使用vs2019编译一个dll [image-20211002165327811.png] 这里使用到库调用system()生成弹出一个计算器即可 [image-20211002165427446...但是即时调用实际上是调用了劫持dll的某个函数,只不过那个函数会jmp到原本的dll中的相应函数的地址。达到的效果相同,但是实现的原理不同。

    3.7K30

    一步步带你玩明白前后端双端的数据绑定!

    、Lit 和 Vanilla JS 的模板 从 JavaScript 轻松调用 Go 方法 自动将 Go 结构体转换为 TypeScript 模块 Windows 上不需要 CGO 或外部 DLL 使用...- 18+ wails3 前后端双端数据绑定 框架通过wails命令内置模板在frontend前端目录下生成bindings代码绑定Go和前端通讯,前通过js函数调用后端Go函数。...:在函数声明的时候 (g *WebService) 这个必须指向当前Service所拥有的某个struct结构体; 我们所有的Service都依靠这个struct结构体进行连接调用 当创建Service...包内的内容,其实就是对Service进行解析成js文件,以便前端进行调用。...而在main.go中声明就是打开Service的开放,使得wails能够扫描到对应的service 引用路径与使用 那么此时Service已经创建完毕了,下面来在实际的js或vue业务中进行调用 import

    99010

    在Windows中劫持DLL

    旁边的用户可写文件夹中,在使用方式上,它与(签名)二进制代理执行有相似之处,这的一种变体是(带有某种逻辑上学上的称呼)"bring your own LOLbin",其中合法应用程序带有恶意DLL(而不是从受害者计算机上的合法位置复制...DLL,以及被调用的该DLL的过程,如前一节所述,这些目标不仅仅是理论目标,而且经过测试和确认是有效的,该列表包含287个可执行文件和263个独特的DLL。...上通过传统方式创建带有尾随空格的文件夹,你可以像最初的研究人员那样编译一些C代码行来完成这项工作,但事实证明VBScript实际上也可以为我们完成这项工作,下面的POC表明,只需几行代码,就可以实现这一点...防御措施 防止DLL劫持发生的一种简单方法是使应用程序始终使用绝对路径而不是相对路径,尽管某些应用程序(尤其是可移植的应用程序)并非总是能够做到这一点,但是位于\system32\同一文件夹中并依赖于这些...UAC Bypass技术,如前所述,带有尾随空格的Windows文件夹无法通过常规方式创建,因此应该很少,并且总是可疑的,将您的UAC模式设置为"Always notify"(比默认值高一级)将阻止此方法和其他类似的

    3K10

    c#调用python的四种方法(尝试了四种,只详细讲解本人成功的后两种,其余方法只列出,详细用法请自行谷歌百度)

    使用c++程序调用python文件,然后将其做成动态链接库(dll),在c#中调用此dll文件 限制:实现方式很复杂,并且受python版本、(python/vs)32/64位影响,而且要求用户必须安装...python运行环境 三、使用安装好的python环境,利用c#命令行,调用.py文件执行 优点:执行速度只比在python本身环境中慢一点,步骤也相对简单 缺点:需要用户安装配置...python3\python.exe";//没有配环境变量的话,可以像我这样写python.exe的绝对路径。...我要传一个很大的数组,曲线救国,用c#将数组写入txt文件中,将存放路径传给python函数,python读取此txt文件得到数据 ---- 使用步骤: 1、编写python文件(...有其他问题可以在下面评论或者私信我,可能回复不及时,请谅解,谢谢支持 2019-5-16更新,补充一点,path中不能带有空格,尽量不要有中文。

    17.6K21

    DLL劫持技术权限提升及防范

    在程序运行中,可能会需要一些相对独立的动态链接库,而这些预先放置在系统中的动态链接库文件。当我们执行某一个程序时,相应的DLL文件就会被调用。...DLL 是一个包含可由多个程序同时使用的代码和数据的库,一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。...,此项下的所有匹配到的DLL文件就会被禁止从程序自身所在的目录下调用,而只能从系统目录即SYSTEM32目录下调用。...DLLHSC.exe -e putty.exe -lm DLLHSC -lm挖掘DLL劫持 使用如下命令,将加载可行性文件,并且Hook LoadLibrary和LoadLibraryEx函数,打印加载的...DLLHSC.exe -e putty.exe -rt DLLHSC -rt挖掘DLL劫持 DLL劫持漏洞的防御措施 在软件开发过程中,开发者需要格外注意使用安全函数来加载动态函数库,尽量使用绝对路径加载库函数

    86110

    使用 7-Zip 的命令行版本来压缩和解压文件

    依赖 7z.dll 7zG.exe 7-Zip 的 GUI 模块,需要通过命令行指定参数调用。依赖 7z.dll 7-zip.dll 与 Windows Shell 以及 7zFM.exe 集成。...7z.exe 7-Zip 的命令行版本,需要通过命令行指定参数调用。 7z.dll 7-Zip 的核心执行引擎。 7z.sfx SFX 模块(Windows 版本)。...使用命令行操作 7z.exe 如果你希望使用 .NET/C# 代码来自动化地调用 7z.exe,可以参考我的另一篇博客: 编写 .NET/C# 代码来操作命令行程序 - 吕毅 本文直接介绍 7z.exe...-o 表示指定输出路径 特别注意:-o 和 {outputDirectory} 之间是 没有空格 的。...x C:\Users\walterlv\nsis_installer_1.0.0.0.exe -oC:\Users\walterlv\nsis 这也是为什么我们考虑使用 7z 来解压缩,而不是使用相关的

    4.1K40

    从原理解析如何防御DLL劫持

    每个DLL都有一个入口函数(DLLMain),系统在特定环境下会调用DLLMain。在下面的事件发生时就会调用dll的入口函数: 1.进程装载DLL。 2.进程卸载DLL。...隐式链接方式一般用于开发和调试,而显式链接方式就是我们常见的使用LoadLibary或者LoadLibraryEx函数(注:涉及到模块加载的函数有很多)来加载DLL去调用相应的导出函数。...调用LoadLibrary或者LoadLibraryEx函数时可以使用DLL的相对路径也可以使用绝对路径, dll路径搜索规则 但是很多情况下,开发人员都是使用了相对路径来进行DLL的加载。...根据MSDN文档的约定,在使用了DLL的相对路径 调用LoadLibrary函数时,系统会依次从下面几个位置去查找所需要调用的DLL文件。 1.程序所在目录。 2.加载 DLL 时所在的当前目录。...2.系统目录SYSTEM32 目录。 3.16位系统目录。没有获取该目录路径的函数,但会对其进行搜索。 4.Windows目录。使用GetWindowsDirectory函数获取此目录的路径。

    3.5K10

    JNI--基本介绍和使用

    JNI全名为:Java Native Interface,用于连接Java和C/C++桥梁,通过JNI,Java语言可以调用C/C++的函数,反之C/C++也可以调用Java的变量和方法,一般使用环境为...开发JNI不是必须使用NDK,它只不过方便我们使用而已 下面介绍JNI的基本使用: 1.由于考虑到安卓开发人员只有AS工具,这边就使用AS新建一个项目,并创建一个带有main函数的类: package...点击上面菜单栏的生成,选择重新生成解决方案 ? 最后成功生成动态库 ? 将生成的dll复制到我们的AS项目中 ? ?...(getStringFromC()); } } System.load方法需要传入绝对路径,我们来运行看下效果: ?...JNI的具体使用流程就这么些,之后会再介绍静态native函数和非静态native函数的区别,以及C/C++调用Java中的变量等

    76130

    Cobaltstrike4.0——记一次上头的powershell上线分析

    我们如何在不直接使用 win32的api的情况下来调用相关api接口的呢?(一般我们直接调用api,其实都是一个间接call,从导出表里面IAT表里面拿api的函数的真实地址。...所以这里完美的解决了CreateRemoteThread使用方法的问题,除此之外,就是我们这里的dll是在磁盘上的,所以我们加载的时候要传入绝对路径才行。...dll是没有办法正常使用的),这个dll模块存在一个导出函数ReflectiveLoader,在CreateRemoteThreat方法的参数里面传入ReflectiveLoader函数的“真实地址(开辟空间的基址...,使用ida打开,选择以binary方式打开: 将开头都转成机器码(按快捷键c就可以了): 转化后:如下图 这里可以看到开头有两个call,我们来逐句分析下对应机器码: 开头两句,没啥好说的是DLL...+5,这里就是调用当前call指令开始位置往下偏移5的位置,call命令本身就是5个字节,所以就是调用下一条语句,但是call执行的时候会有压栈操作,会把下一条待执行代码(eip+1)地址压栈,函数返回使用

    1.7K10

    1.7 完善自定位ShellCode后门

    在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过...,该函数接收一个字符串参数,则我们通过push的方式将字符串的十六进制依次压栈保存,然后通过call [ebp+76]调用也就是调用GetProcAddress函数来动态得到内存地址,当得到地址后默认存储在...,翻转过来则是00006570,69506574,61657243,又因为当前GetProcAddress函数的内存地址被存储在了ebp+76的位置,则通过CALL该地址则可实现调用函数的目的,当执行结束后则将返回值放入到...kernel32.dll模块内,它在Ws2_32.dll模块内,我们需要先调用call [ebp+80]也就是调用LoadLibrary加载ws2_32.dll模块获取该模块的基地址,接着在通过call...[ebp+76]调用获取该模块中WSAStartup函数的基址,但读者需要注意的是,call [ebp+76]时需要压入两个参数,其中push edi带指的是ws2_32.dll的字符串,而push

    36020

    1.7 完善自定位ShellCode后门

    在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过...,该函数接收一个字符串参数,则我们通过push的方式将字符串的十六进制依次压栈保存,然后通过call [ebp+76]调用也就是调用GetProcAddress函数来动态得到内存地址,当得到地址后默认存储在...,翻转过来则是00006570,69506574,61657243,又因为当前GetProcAddress函数的内存地址被存储在了ebp+76的位置,则通过CALL该地址则可实现调用函数的目的,当执行结束后则将返回值放入到...函数,该函数显然不在kernel32.dll模块内,它在Ws2_32.dll模块内,我们需要先调用call [ebp+80]也就是调用LoadLibrary加载ws2_32.dll模块获取该模块的基地址...,接着在通过call [ebp+76]调用获取该模块中WSAStartup函数的基址,但读者需要注意的是,call [ebp+76]时需要压入两个参数,其中push edi带指的是ws2_32.dll的字符串

    35740

    1.7 完善自定位ShellCode后门

    在之前的文章中,我们实现了一个正向的匿名管道ShellCode后门,为了保证文章的简洁易懂并没有增加针对调用函数的动态定位功能,此类方法在更换系统后则由于地址变化导致我们的后门无法正常使用,接下来将实现通过...,该函数接收一个字符串参数,则我们通过push的方式将字符串的十六进制依次压栈保存,然后通过call [ebp+76]调用也就是调用GetProcAddress函数来动态得到内存地址,当得到地址后默认存储在...,翻转过来则是00006570,69506574,61657243,又因为当前GetProcAddress函数的内存地址被存储在了ebp+76的位置,则通过CALL该地址则可实现调用函数的目的,当执行结束后则将返回值放入到...函数,该函数显然不在kernel32.dll模块内,它在Ws2_32.dll模块内,我们需要先调用call [ebp+80]也就是调用LoadLibrary加载ws2_32.dll模块获取该模块的基地址...,接着在通过call [ebp+76]调用获取该模块中WSAStartup函数的基址,但读者需要注意的是,call [ebp+76]时需要压入两个参数,其中push edi带指的是ws2_32.dll的字符串

    33030
    领券