gpt4 book ai didi

IOS 攻击者可以看到多少我的方法?

转载 作者:行者123 更新时间:2023-11-28 23:24:19 26 4
gpt4 key购买 nike

我知道将 GDB 附加到应用程序的攻击者可以提取有关我的代码的许多信息。他还可以强制返回方法并修改应用程序的行为。无论如何,有些事情我还不明白。如果我有这样的方法:

-(int)example_method :(int)parameter_1 :(int)parameter_2{

int value_1=300;
int value_2=1240445;
int sub_result_1 = parameter_1*parameter_2;
int sub_result_2 = parameter_1*value_1;
int sub_result_3 = value_1*value_2;
int result = sub_result_1+sub_result_2+sub_result_3;

return result;
}

据我所知,GDB 中的攻击者可以提取和操纵:

  1. parameter_1 的值
  2. parameter_2 的值
  3. 结果的值(value)

我的问题是,攻击者能否看到结果是如何产生的?他能看到方法中的那些行吗?

int value_1=300;
int value_2=1240445;
int sub_result_1 = parameter_1*parameter_2;
int sub_result_2 = parameter_1*value_1;
int sub_result_3 = value_1*value_2;

最佳答案

使用 gdb 的攻击者可以看到您的代码...至少在汇编级别

如果您的程序是使用调试符号 (-g) 编译的,则可以将该程序与其源代码相关联。

如果程序在没有它们的情况下编译,调试器仍然能够看到代码的汇编指令。请注意,汇编是非常低级的,因此会缺少很多信息(变量名、高级源代码……)。但是有了一些汇编知识,就可以对二进制文件进行逆向工程以查看执行了什么操作。

使用 obfuscation techniques 可以使逆向工程过程变得更加困难.


My question is, can an attacker see how the result is made ? Can he see those lines inside the method?

汇编中没有变量的概念,只有寄存器。有时一个寄存器会与一个变量相关联,有时汇编会与您编写的非常不同,尤其是在混淆的情况下。

算法只需要功能相同,但汇编与高级语言确实不同,因此不要期望 1-1 匹配。

请注意,您的程序可以在不知道确切使用了哪个变量的情况下进行逆向工程。根据程序的大小和复杂性,它可以是微不足道的,也可以是极其复杂的。

如果您想在汇编级别查看包含您的程序的内容,您可以使用像 objdump -d -S 这样的命令。

关于IOS 攻击者可以看到多少我的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59087730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com