首页 > 其他分享 >.net native aot dll 库函数导出和调用

.net native aot dll 库函数导出和调用

时间:2023-09-16 11:33:06浏览次数:48  
标签:导出 dll aot OutPut net 库函数 native

.net 程序aot后,就是原生程序了, 如果是aot的dll,是可以导出为等价于c语言的native的dll的。导出函数声明如下:

[UnmanagedCallersOnly(EntryPoint = "OutPut")]
public static int OutPut()
{
    return 1;
}

导出后,可以作为原生的dll调用了, 在.net程序中,也可以通过pinvoke的方式调用。

[DllImport("AOTDLL.dll")]
public static extern int OutPut();

更多示例可以参考这个文章:Using .NET 7 Native AOT to call .NET functionality in C++

标签:导出,dll,aot,OutPut,net,库函数,native
From: https://www.cnblogs.com/TianFang/p/17706493.html

相关文章

  • 权限提升-烂土豆&dll劫持&引号路径&服务权限
    必备知识点:#令牌窃取配合烂土豆提权单纯令牌窃取:web权限或本地提权如配合烂土豆提权:web或数据库等权限 #不带引号服务路径安全问题服务路径提权:web权限或本地提权 #不安全的服务权限配置问题服务权限配置:WEB权限或本地提权(web几率小) #补充说明:dll劫持提权及......
  • 3.3 DLL注入:突破会话0强力注入
    Session是Windows系统的一个安全特性,该特性引入了针对用户体验提高的安全机制,即拆分Session0和用户会话,这种拆分Session0和Session1的机制对于提高安全性非常有用,这是因为将桌面服务进程,驱动程序以及其他系统级服务取消了与用户会话的关联,从而限制了攻击者可用的攻击面。由于DL......
  • 3.4 DLL注入:全局消息钩子注入
    SetWindowHookEx是Windows系统的一个函数,可用于让一个应用程序安装全局钩子,但读者需要格外注意该方法安装的钩子会由操作系统注入到所有可执行进程内,虽然该注入方式可以用于绕过游戏保护实现注入,但由于其属于全局注入所以所有的进程都会受到影响,而如果想要解决这个问题,则需要在Dll......
  • 3.1 DLL注入:常规远程线程注入
    动态链接库注入技术是一种特殊的技术,它允许在运行的进程中注入DLL动态链接库,从而改变目标进程的行为。DLL注入的实现方式有许多,典型的实现方式为远程线程注入,该注入方式的注入原理是利用了Windows系统中提供的CreateRemoteThread()这个API函数,该函数第四个参数是准备运行的线程,我......
  • 3.2 DLL注入:远程APC异步注入
    APC(AsynchronousProcedureCall)异步过程调用是一种Windows操作系统的核心机制,它允许在进程上下文中执行用户定义的函数,而无需创建线程或等待OS执行完成。该机制适用于一些频繁的、短暂的或非常细微的操作,例如改变线程优先级或通知线程处理任务。在APC机制中,当某些事件发生时(例如......
  • 提取.NET开发的DLL中的类为json文件工具软件ConsoleApp_Dll_Class2Json_V1.0开源了
    提取.NET开发的DLL中的类为json文件工具软件ConsoleApp_Dll_Class2Json_V1.0开源了同步在github和gitee上面发布。github https://github.com/binghe021/ConsoleApp_Dll_Class2Jsongitee https://gitee.com/binghe021/ConsoleApp_Dll_Class2Json......
  • .Net8 AOT+VMP简单的逆向分析
    1.前言测试下VMP加密.NET的强度,选了最新的.Net8+AOT编译,用VMP给它加壳。最后逆向下,简单的分析,本篇看下。2.概述一.前奏首先一段简单的C#代码:namespaceTest_{internalclassProgram{staticvoidMain(string[]args){Console.WriteLine("hello,......
  • C# 封装 C++的dll
    C#的程序引用C++的dll时,首先要保证两者基于的平台一致,比如都是x64,或者都是x86的程序,否者两者之间不能直接调用,然后,要保证两者的数据类型可以相互识别,相互通用。在此重点介绍几个常用的数据转换。C++的char*和char[]数组,对应到C#的string类型C++的Handle类型,一般是一个很......
  • .NET:使用 P/Invoke 调用 C# 中的 Win32 DLL——本质上和动态加载DLL没有区别
    .NET:使用P/Invoke调用C#中的Win32DLL本质上和动态加载DLL没有区别!!!如下: 在.NET中执行非托管代码时,我们通常想要实现什么?假如是红队,一般想要运行原始的beaconpayload,在该payload中运行C#封装的本地代码。很长一段时间以来,最常见的做法是这样的:[DllImport("kernel32.dll"......
  • STM32 HAL常用库函数
    1.设置GPIO引脚函数函数名称:voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState);第一个参数:GPIOA,B,C,D…(取决于单片机型号)第二个参数:可以取GPIO_PIN_0~GPIO_PIN_15第三个参数:GPIO_PIN_SET(置高电平),GPIO_PIN_RESET(置低电平)例:HAL_GPIO_Writ......