上一次和大家分享的是Linux下Qt创建共享库并链接共享库,这次和大家分享的是Windows下Qt创建共享库并链接共享库。大家肯定注意到标题中Qt后面括号中的minGW,为什么要加上minGW呢?先卖个关子,后面的介绍中会解释的。
一、介绍 IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序。它包含了以下的组建: * 一个用.NET实现的java虚拟机 * 一个java类库的.NET实现 * 致力于在java和.NET之间交互的工具 二、IKVM.NET的组件 IKVM.NET包含以下的部分: * IKVM.Runtime.dll: VM运行时和所有支持代码。它包括以下的功能: Byte Code JIT 编译器和验证器: 使用JIT将Java Byte C
Unity3D打包android应用程序时,如果不对DLL加密,很容易被反编译,导致代码的泄露。通常的做法是通过加密DLL或者对代码进行混淆。本文的所要探讨的是通过加密的方式来对DLL进行保护,并详细记录加密的操作过程。
通俗说,PHP 扩展是增强 PHP 语言功能的插件。PHP 提供了编程语言的语法,比如分支、循环、函数、类等,这些是 PHP 本身所提供的。在某些情况下需要在 PHP 语言的基础上进行扩展,那么就需要通过 PHP 底层提供的数据结构和接口来开发 PHP 扩展,从而来补充或扩展 PHP 语言,使之更加的强大。当然了,PHP 本身就已经集成了一些基本的、强大的、优秀的 PHP 扩展。
TinyTracer是一款功能强大的API调用跟踪工具,在该工具的帮助下,广大研究人员能够轻松实现API的调用跟踪。
1.生成lib文件 首先,我们先建立一个控制台工程(新建->工程->控制台程序),添加add.cpp以及add.h文件。 //sub.h #ifndef _SUB_H #define _SUB_H void sub(int a,int b); #endif //sub.cpp #include "sub.h" #include <iostream> void sub(int a,int b) { std::cout<<(a-b)<<std::endl; } 由于在工程中,没有main(
Clangen使用 ClangSharp解析头文件来完成一些中间代码的生成(如Rpc的注册代码, 桩代码, C++类导出到Lua的代码等). 而ClangSharp本身依赖了llvm, 以及自己的一个libClangSharp的库, windows和linux下需要编译一下llvm和这个库, 一般来说系统没变的情况下, 直接使用已经编译好的libclang.so/dll即可, 但有些时候遇到需要升级llvm到高版本的情况, 比如说我们之前碰到的情况 , llvm9在linux下运行速度异常(Windows下10S的流程, 在linux下处理同样的任务要快3分钟, 最后发现可能之前编译使用的是debug版本), 我们需要编译LLVM, 并且编译依赖llvm的libClangSharp, 官方文件比较简单, 而且配置项有一些问题, 可能导致不能正常编译, 所以这里记录下过程方便后续有相关需求的时候可以参照处理.
Cobaltstrike 是一款优秀的后渗透测试工具,一般用来做内网渗透,集成很多内网渗透攻击与命令。与MSF相似,曾经是MSF的一个模块,现在已经作为独立的平台使用,因此可与MSF联合使用。C/S架构,它分为客户端和服务端,服务端只要一个,客户端可有多个,可与多人团队进行分布式协团操作。Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、socket代理、office宏代码生成、远控木马等,几乎覆盖了APT攻击链中所使用到的各个技术环节。
NanoDump是一款功能强大的MiniDump转储文件提取工具,在该工具的帮助下,广大研究人员可以轻松转储LSASS进程中的MiniDump数据。
MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库。MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时(C Runtime)库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95发行版以上的 Windows OS 有效,使用基本运行时,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 WindowsAPI功能;通俗点讲就是讲一些linux编译器集成到了windows上,直接调用gcc,g++等等,功能组件如下图:
Charlotte是一款基于C++实现的Shellcode启动器,并且完全不会被安全解决方案所检测到。
.NET Core 目前更新到2.2了,但是直到现在在 .NET Core 本身依然不包括和图片有关的 Image、Bitmap 等类型。对于图片的操作在我们开发中很常见,比如:生成验证码、二维码等等。在 .NET Core 的早期版本中,有 .NET 社区开发者实现了一些 System.Drawing 的 Image等类型实现的组件,比如 CoreCompat.System.Drawing、ZKWeb.System.Drawing等。后来微软官方提供了一个组件 System.Drawing.Common实现了 System.Drawing 的常用类型,以 Nuget 包的方式发布的。今天就围绕它来讲一讲这里面的坑。
Windows端的java程序使用jni调用C++编写的库,原来实现过在Android和Linux端通过JNI调用C++程序,在Windows端没有实现过,这里记录下几个关键的点;
1、将PHP文件夹下的三个文件php_curl.dll,libeay32.dll,ssleay32.dll复制到system32下;
纸壳CMS v3.5最主要的更新就是升级到了最新的.Net 6运行环境,拥有更好的性能,启动更快。在Linux平台部署时可不用安装libgdiplus,部署更方便。并且docker镜像比之前的版本缩小50%。
C++静态库与动态库
本文对OpenBLAS进行配置和编译,并总结介绍了如何将OpenBLAS库集成到Caffe中。
3.新建source.def (是为了在不同编译环境下都可以使用)
在 C:\Windows\System32 目录中 , 存放着 Windows 中的动态库 ;
介绍 今天给大家推荐的这个代码库将允许原生Linux程序从一个WindowsDLL文件中加载或调用功能函数。下面是一个简单的演示示例,我将Windows Defender“移植”到了Linux平台。 $ ./mpclient eicar.com main(): Scanning eicar.com... EngineScanCallback(): Scanning input EngineScanCallback(): Threat Virus:DOS/EICAR_Test_Fileidentified
本文将通过一个经典的 “tensorflow找不到dll” 问题来入手,给大家一个如何找到缺失dll的办法,进而再分享一个windows上排查问题的好工具(因为大多开发者在windows上开发&在linux上部署,windows还是绕不过)。
gunzip -c xxx.tar.gz | tar xvf - (或者tar xzvf libxml2-xxxx.tar.gz)
如果你对程序的性能要求比较高,或者觉得java的运行速度已经满足不了你,底层也可以采用C++来完成,使用JNI技术直接调用,会让你的程序有飞一般的感觉。前段时间做了调研,踩了几个坑,这里总结下,希望大家少走弯路。
1、远控免杀专题(1)-基础篇:https://mp.weixin.qq.com/s/3LZ_cj2gDC1bQATxqBfweg
大家好,今天分享的是使用C/C++编写一个读取串口数据的代码,然后将其编译成Windows下的动态链接库(.dll文件),然后写一个简单的java demo来调用C/C++接口。
大多数教程都是用的这个脚本直接实现的https://github.com/Ridter/redis-rce。不知道大家在使用脚本的时候有没有注意到一些限制。
1. POSIX 线程局限性 : 在 Android , Linux , UNIX , MAC 中可以直接使用 POSIX , Windows 不可以直接使用 ;
LightsOut是一款功能强大的DLL生成工具,该工具可以帮助广大研究人员轻松生成经过混淆处理的DLL。该工具专为红队研究人员设计,生成的DLL可以在研究人员尝试绕过反病毒产品时禁用AMSI和ETW,从而更好地测试目标系统的安全性。
New -> Application -> Qt Console Application -> Choose
上一篇讲了一些EF Core访问Oracle的坑。(感兴趣请移步:使用Entity Framework Core访问数据库(Oracle篇))
在说明Linux的.a、.so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系。
想到rasp这类工具是基于java、php运行期的堆栈信息进行分析,可以尝试使用jni技术进行绕过。java技术栈中的jni的原理是使用java调用c、c++函数,具体实现的思路是jsp编译为class文件,该class通过jni技术调用另外一处dll里的函数绕过黑名单执行命令获取回显,即可实现rasp和安全防护软件的绕过。github地址:https://github.com/nanolikeyou/jniwebshell
(1) 动态库的编译 这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。 命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 参考2:都是由C或C++编译出来的 -shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件 -fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。 (2) 动态库的链接 这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test: 命令:$ gcc test.c -L. -ltest -o test 注:测试是否动态连接,如果列出libtest.so,那么应该是连接正常了 -L.:表示要连接的库在当前目录中 -ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称 命令:$ ldd test 注: 执行test,可以看到它是如何调用动态库中的函数的。
大家好,我是ABC_123。我从年前到现在,一直在整理曾经写过的红队工具,逐步把自己认为比较好用的原创工具发出来给大家用一用,方便大家在日常的攻防比赛、红队评估项目中解放双手,节省时间精力和体力。本期给大家分享的就是我在2018年左右编写的方程式工具包的各种溢出漏洞的图形界面版,个人一直在更新,一直在用。
安装某些PHP源码如CMSTOP时需求系统开启curl扩展,这需要修改PHP的配置,在Windows 中只需简单三步。
邮件钓鱼通常出现在APT攻击里面,但是在日常生活中我们的邮箱也会经常出现一些钓鱼邮件,为了更好的了解原理,我在本地探索了一下宏上线钓鱼邮件,分享出来供师傅们交流。
提权Webshell:尽量能够获取webshell,如果获取不到webshell可以在有文件上传的地方上传反弹shell脚本;或者利用漏洞(系统漏洞,服务器漏洞,第三方软件漏洞,数据库漏洞)来获取shell。
前面我们提到了如果我们不希望把我们的源码提供出来,但是又想提供这个接口给调用者调用,那么这个该怎么做呢?
UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,就像使用本地函数如 user() 一样。
最终目的是在Unity中与so文件进行交互处理,但是本篇文章需要先对so文件有一个基本的认识
在 Linux 上遇到性能问题时,可使用 perfcollect 收集跟踪,以便收集有关出现性能问题时计算机上发生的状况的详细信息。
CrossC2面向企业自身及红队人员的安全评估框架,支持CobaltStrike对其他平台(Linux/MacOS/...)的安全评估,支持自定义模块,及包含一些常用的渗透模块。
dnscat2(https://github.com/iagox86/dnscat2)是一个DNS隧道,旨在通过DNS协议创建加密的命令和控制(C&C)通道。dnscat2分为两部分:客户端和服务端。dnscat2客户端采用C语言编写,服务器端采用ruby语言编写。后来又有安全研究人员使用PowerShell脚本重写了dnscat2客户端dnscat2-powershell(https://github.com/lukebaggett/dnscat2-powershell)。
Windows无人参与安装在初始安装期间使用应答文件进行处理。您可以使用应答文件在安装过程中自动执行任务,例如配置桌面背景、设置本地审核、配置驱动器分区或设置本地管理员账户密码。应答文件是使用Windows系统映像管理器创建的,它是Windows评估和部署工具包(ADK:Assessment and Deployment Kit)的一部分,可以从以下站点免费下载https://www.microsoft.com.映像管理器将允许您保存unattended.xml文件,并允许您使用新的应答文件重新打包安装映像(用于安装Windows)。在渗透式测试期间,您可能会在网络文件共享或本地管理员工作站上遇到应答文件,这些文件可能有助于进一步利用环境。如果攻击者遇到这些文件,以及对生成映像的主机的本地管理员访问权限,则攻击者可以更新应答文件以在系统上创建新的本地账户或服务,并重新打包安装文件,以便将来使用映像时,新系统可以受到远程攻击。
按照以前的经验,编译Tesseract 3.05就是去GitHub上找一个已经解决了依赖关系(如Leptonica等)的VS2015解决方案,然后在VS中编译生成?是不是最痛苦的地方就是找不到这样的解决方案,或者在自己的Windows中不能正常编译?
客户给了一些 C语言 写的 SDK 库,这些库打包成 .so 文件,然后我们使用 C# 调用这些库,其中有一个函数是回调函数,参数是结构体,结构体的成员是函数,将 C# 的函数赋值给委托,然后存储到这个委托中。
领取专属 10元无门槛券
手把手带您无忧上云