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

aardio调用汇编代码获取返回值的方法

aardio编程软件可以对外部进程注入汇编代码,并且转换成aardio函数很方便的调用。有时候需要获取汇编代码内的某些数据,把这个数据作为aardio函数的返回值。...要让注入代码的aardio函数有返回值,需要注意2点。 1、声明函数返回值必须是void,声明为其他类型时,该函数都不会有返回值。...2、声明的函数参数内必须有一个指针类型的参数,这个指针指向的内存数据就是aardio函数的返回值。注意:注入的汇编代码必须把数据写入该指针内存。...data={int result=0;int result2=0}; func(0x415E20,data); 这样的代码执行后,data.result和data.result2就是汇编代码内2个call的返回值...同时,func这个函数的返回值也是data这个结构体。

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

    【C++】基础:创建动态链接库并调用示例

    1. c++动态链接库介绍 C++动态链接库是一种常用的库文件形式。它允许多个应用程序共享代码和数据,提供了一种有效地组织、重用和管理代码的方式。...与静态库不同,动态库在运行时被加载到内存中,并通过链接器动态地连接到应用程序。这意味着多个应用程序可以同时使用同一个动态库,从而减少了内存占用和可执行文件的大小。...C++动态库具有以下优势: 1.代码共享:多个应用程序可以共享同一个动态库中的代码和函数。这使得开发者可以将通用的功能封装到一个库中,以便在多个项目中重复使用,从而提高代码的复用性和维护性。...以一个hello_so的示例创建动态链接库,创建src目录并新建hello.h、hello.cc和CMakeLists.txt: // hello.h void hello(); int add(int...调用动态链接库 将共用代码抽象出来,用调库来实现,代码只需引用头文件并链接动态库就可以。

    22210

    【Android 逆向】Android 进程注入工具开发 ( 远程调用 | x86 架构的返回值获取 | arm 架构远程调用 )

    文章目录 前言 一、x86 架构的返回值获取 二、ARM 架构远程调用 前言 在之前的博客 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /...mmap 函数 二 | 准备参数 | 远程调用 mmap 函数 ) 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap...函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 ) 中 , 介绍了 调试进程 远程调用 远程进程 的 libc.so 动态库中的 mmap 函数 , 本博客继续对该远程调用过程进行一些补充...; 一、x86 架构的返回值获取 ---- 远程调用 返回值获取 : 在 x86 架构的 CPU 中 , 使用 EAX 寄存器记录返回值 , 在 ARM 架构的 CPU 中 , 使用 R0 寄存器记录返回值...; 远程调用结束后 , 获取寄存器数据 , 并读取 EAX 寄存器值 ; 如果远程调用的函数的返回值为 void , 那么 EAX 寄存器存放的就是无意义的值 , 可能是上一个函数的返回值 , 可能是计算过程中的一个中间值

    49820

    C++ 打包并调用动态链接库 (VS2010)

    调用动态链接库 既然要调用动态链接库,就用了解我们生成的东西在调用的过程中的作用。...在应用程序的可执行文件中,存放的不是被调用的函数代码,而是DLL中相应函数代码的地址,从而节省了内存资源。DLL和LIB文件必须随应用程序一起发行,否则应用程序会产生错误。...应用程序调用dll时,需要将该文件包含入应用程序的源文件中。...(3).dll文件,真正的可执行文件,开发成功后的应用程序在发布时,只需要有.exe文件和.dll文件,并不需要.lib文件和.h头文件。...新建一个Win32控制台程序,将用于生成动态链接库的testdll.h加入到工程,并新建一个.cpp文件: testdll.h中已经有代码了,在main.cpp中添加: #include "testdll.h

    1.2K10

    windows下C与C++执行cmd命令并实时获取输出

    前言 在windows下一般会使用系统的cmd命令或者其他现成的一些命令行可执行程序来完成一些操作,比如:调用ping命令来测试网络是否畅通、调用ffmpeg命令进行视频转码等等。...为了能在软件界面上有更好的交互输出,都需要将命令执行的过程拿到,进行处理,然后在界面上进行显示,让用户知道程序正在正常运行,下面就介绍几种输出的获取方式。...使用_popen执行进程 通过_popen打开进程进行执行,通过fgets获取进程的输出。...CreateProcess重定向输出到文件 下面使用CreateProcess调用子进程运行,将输出保存在文件中,阻塞等待进程执行完毕。...CreateProcess重定向输出到管道 为了能实时获取CreateProcess打开进程运行时实时输出的结果,可以将CreateProcess的输出重定向到管道文件,CreateProcess将数据写到管道的写端

    6.6K30
    领券