首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android/iOS的代码审计

Android/iOS的代码审计
EN

Stack Overflow用户
提问于 2015-05-05 16:26:32
回答 1查看 1.3K关注 0票数 2

我刚刚得到了一个工作任务,以帮助审计一个移动应用程序的代码库。我不是一个移动应用程序程序员,虽然我已经做了很多年的软件开发人员,但是我对移动应用一无所知。我想知道是否有任何提示或工具可用于此代码审核。

我见过Java应用程序的the replies to this older post,它不能应用到我的案例中,因为它们主要是基于让maven构建应用程序,在我的例子中,它们使用Gradle。另外,这些回复是2011年的,也许还有更近期的回复,我真的很感激听到这些回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-05 18:04:36

就其本身而言,任命一位在目标环境中没有经验的人对我来说完全是胡说八道,所以我会在这里质疑管理层。

我希望您至少知道这些应用程序是用什么语言编写的:可能是JavaforAndroid&Objec-C,用于iOS (您的问题没有提到您过去经历过的技术)。如果不是,您肯定只会评论注释、文件大小,或者一些关于命名约定的评论,与真正的审计相比,这几乎没有什么意义。

除了编程语言之外,iOS和Android的设计方式非常不同,有着不同的约定和模式。实际上,我认识的人很少,他们在这两种环境中都很好,这是有原因的:这些是不同的世界,每个世界你都可以很容易地花时间学习API,公共库,设计哲学,为共同的问题做周密的工作,并对内部的工作方式有一点了解。

我不知道你有多少时间来完成这个任务,但我建议你学习如何在目标环境中编写一个基本的应用程序,并了解关键组件。

我的方法一般是:

  • 从团队中收集一些上下文
  • 获取源
  • 构建应用程序&体验一下它在做什么(我通常在这个阶段手工绘制屏幕流程图,稍后在代码中导航时会很有用),还要注意bug、慢特性、非用户友好的东西(反馈对团队来说很重要)。
  • 转到源代码,检查它的宏观布局:。查看构建脚本,看看它使用的是什么外部库。请注意一般的包层次结构,检查命名是否一致,包是否超载。一般地看一下类的命名:它是否一致?类名能帮助找出里面到底是什么吗?做一些关于文件大小的基本统计:它可以快速地指出一些设计缺陷
  • 现在谈谈代码本身:。阅读它,直到您确信它的一般工作方式(绘制一个技术流程图有帮助),我喜欢从应用程序入口点开始(通常是在Android中的一种活动)。在测试应用程序时,一定要注意到你所读的内容是如何达到你看到的效果的。注意你在阅读时发现的不良编码习惯(命名,注释,它可以是任何东西:代码的糟糕程度是不受限制的)。注意不可读/过于复杂的代码(但不要花几天时间来理解它们)。如果您注意到了应用程序中的缓慢特性,那么可能值得更仔细地研究这些代码。好好睡一觉,然后重读你的笔记,试着提取一些关于应用程序设计的高级评论。

现在,特别针对Android,根据我的经验,这里列出了最常见的搜索对象列表:

  • 组件生命周期处理问题(用于活动、服务、片段等组件):症状包括设备旋转和引发问题的应用程序切换。
  • 线程处理问题(在UI线程上完成的事情,当它们真正在后台运行时)
  • 大规模的活动/服务(许多人认为创建活动/片段/服务是架构所需的一切--只有非常简单的应用程序才是如此)

我不会说更多的细节,因为比我聪明得多的人都写过这方面的书。你必须编写应用程序才能真正掌握这些主题:很多,所以这就是你应该开始的:自己编写应用程序,否则: 1/你的审计将无关紧要2/团队会很快发现你缺乏技能--取决于审计的目的,你可能很难面对它们.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30058392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档