如何找出函数在C ++中访问的地址?

时间:2017-03-05 05:28:43

标签: c++ windows dll-injection

我已经在多个程序上完成了DLL注入,但这个对我很有挑战性。无论我尝试了多少次,我都找不到我需要的值的静态偏移列表。此外,价值观可以在数量上发生变化,因此直接进入访问它们的功能会更加有效。

在Cheat Engine中,我能够找到直接写入这些地址的函数的地址。我使用"找出这个函数访问的地址"选项并找到我需要的所有地址。但是,我需要在C ++中以编程方式执行此操作,并且不知道从哪里开始。而且我也未能在该主题上找到任何Google搜索结果。

非常感谢任何信息!

更新:为了防止它有用,该功能一次一个地访问它们。在同一个电话中不是多个。

编辑:操作码是mov [esi],ebx ebx,它是从esi复制到的地方。esi是它复制到的地方。所以我需要知道调用函数时app.controller('cartCtrl', ['$scope','cartService', function($scope,cartService) { $scope.name="sasiree"; $scope.cartItems=cartService.getCart(); } ]); 的值。希望这有助于使我的问题不那么广泛。

1 个答案:

答案 0 :(得分:1)

您可以简单地启动反汇编程序并跟踪函数内的所有mov edi mov esi lea和其他内存访问指令。您也可以使用coff从dll获取此信息。如果地址在执行继续时发生变化,请尝试使用调试器和cpu视图。 策略是您需要访问调用堆栈和寄存器状态。这是我在网上找到的可能这对你有帮助 https://www.gironsec.com/blog/2013/12/writing-your-own-debugger-windows-in-c/