gpt4 book ai didi

android - Android/iOS 代码审计

转载 作者:行者123 更新时间:2023-12-01 18:52:35 26 4
gpt4 key购买 nike

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

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

最佳答案

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

我确实希望你至少知道这些应用程序是用什么语言编写的:可能是用于 Android 的 Java 和用于 iOS 的 Objective-C(你的问题没有提到你过去的经验所关注的技术)。如果不是这样,您就只能对注释、文件大小以及命名约定发表评论,与真正的审计相比,这没什么意义。

除了编程语言之外,iOS 和 Android 的设计方式非常不同,具有不同的约定和模式。实际上,我知道在这两种环境中都非常出色的人很少,这是有原因的:这是不同的世界,您可以轻松地将所有时间花在每个世界上,学习 API、通用库、设计理念、变通方法对于常见问题,并了解一些内部工作原理。

我不知道您需要多少时间来执行此任务,但我建议您学习如何在目标环境中编写基本应用程序,并了解关键组件。

我的做法一般是:

  • 从团队中收集一些背景信息
  • 获取来源
  • 构建应用程序并体验它在做什么(我通常在这个阶段手绘一个屏幕流程图,稍后在您浏览代码时很有用),还要注意错误,缓慢的功能,非用户友好东西(反馈对团队很重要)
  • 转到源代码,检查它的宏观布局:
    .查看构建脚本以查看它使用的外部库
    .注意一般的包层次结构,检查命名是否一致,包没有被垃圾重载
    .大致看类命名:是否一致?类名是否有助于弄清楚里面的实际内容
    .做一些关于文件大小的基本统计:它可以快速指出一些设计缺陷
  • 现在关于代码本身:
    .阅读它,直到您满意地理解它的一般工作方式(绘制技术流程图有帮助),我喜欢从应用程序入口点开始(通常是 Android 中的一个 Activity )
    .确保您在测试应用程序时发现您阅读的内容如何实现您所看到的内容
    .记下您在阅读时发现的不良编码习惯(命名、评论,可以是任何东西:代码的糟糕程度没有限制^^)
    .记下不可读/过于复杂的代码(但不要花几天时间来理解它们)
    .如果您注意到应用程序中的缓慢功能,可能值得更仔细地查看这些代码
    .睡个好觉,然后重新阅读所有笔记,并尝试提取一些关于应用程序设计的高级评论

  • 现在,专门针对 Android,根据我的经验,这里列出了最常见的要查找的内容:
  • 组件生命周期处理问题(针对 Activity 、服务、 fragment 等组件):症状包括设备轮换和应用程序切换导致问题
  • 线程处理问题(在 UI 线程上完成的事情,当它们真正应该在后台运行时)
  • 海量 Activity/服务(许多人认为创建 Activity/fragment/服务是架构方面所需要的全部 - 仅适用于非常简单的应用程序)

  • 我不会详细讨论细节,因为比我聪明得多的人写过关于这方面的书。而且你必须编写应用程序才能真正掌握这些主题:其中很多,所以这就是你应该开始的:自己编写应用程序,否则:1/你的审计将无关紧要 2/团队会发现你缺乏技能相当快——根据这次审计的目的,你可能很难面对他们……

    关于android - Android/iOS 代码审计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30058392/

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