2012-01-01 89 views
2

Security and Design文档Android的应用内结算状态的秘诀是:当涉及逆向工程时,“入口点”和“出口点”是什么?

特别是,攻击者寻找已知切入点出口 点在应用程序中,所以它是你重要修改与示例应用程序相同的代码的这些 部分。

因为我要使用应用内结算的第一次,我很感兴趣,了解这意味着什么究竟,在确保我的基于订阅的应用方面:

  1. 什么正是那些“已知入境/出境点”?
  2. 我需要在这些部分修改什么,才能让攻击者的任务变得更加困难?
  3. 鉴于事实上没有任何东西能够被最终的逆向工程所保护,真的值得这么长时间去保护 应用程序/服务吗?
+4

这可能会说明一些:https://www.owasp.org/index.php/Application_Threat_Modeling#Entry_Points – 2012-01-01 18:11:45

+0

@Jason Down +1已经。感谢您的链接。 – 2012-01-01 18:13:46

回答

3

我认为,文件是谈论的是标准的Android中用于启动应用程序,即activity lifecycle方法(onCreate等)的方法。这些攻击者很容易找到它们,因为它们没有被混淆(因为框架需要能够找到它们)。

+0

+1是特定的,这有助于我专注于目标,确实是Android特定的目标。 – 2012-01-01 18:29:08

2

在一个相当基本的高层次上,入口点是应用程序启动的地方,出口点是结束的地方。其中每一个(如上所述)都是不受保护的,并且还倾向于拨打一些不在其他地方拨打的电话,这使得它们很容易找到并更改。

3

鉴于这一事实,没有什么能最终 逆向工程的保护,是不是真的值得去这样大篇幅 保护的应用程序/服务?

这确实是一个有趣的问题!要回答它也必须问:的预期成本不是保护应用程序?

如果通过IAP销售的产品会导致供应商/开发商的实际成本(例如,假设每个下载的供应商可能必须自行支付许可证费用才能销售MP3),这变得更加重要。这通常表明对手可能获胜,因此他可能愿意投资逆向工程。

但是,我的印象是,破解/盗版/ ...应用程序只有一个边缘的“黑市”,理由是无法通过Google的市场提供这些破解或破解的应用程序,这是这是唯一预装在所有Android手机上的。普通用户永远不会看到任何其他应用程序源。因此,如果您希望销售更多的应用,那么您可能会忍受1%的“高级用户”欺诈行为。如果您的应用程序有点特别和昂贵,并且您期望只出售几十或几百个应用程序,那么您将对保护您的知识产权更感兴趣。

保护的第一步始终是模糊处理,这会使您的应用程序的安全性变得相当差(几乎没有)额外的努力。如果没有强烈的理由反对它,我建议混淆应用程序(例如,堆栈跟踪可能在混淆的应用程序中变得完全无用)。