正式加入字节跳动,分享一点面试小经验

今天正式入职了字节跳动。工号超吉利,尾数是3个6。然后办公环境也很好,这边一栋楼都是办公区域。公司内部配备各种小零食、饮料,还有免费的咖啡。15楼还有健身房。而且公司包三餐来着。下午三点半左右还会有阿姨推着小车给大家送下午茶。听说入职以后很容易长胖来着。不过如果想要保持身材的话,公司二楼还提供专门的健身餐。周二周四还可以预约专业的按摩服务,有效调理颈椎和腰椎。生活服务得这么贴心,感觉在这里就只需要好好工作就好了吧,哈哈

其实很早就和小伙伴们说要写一篇面试经验的。包括我为什么想要换工作,为了换工作做了什么准备,以及面试过程的一些分享。但是前段时间因为住院做了个小手术而耽误了。今天刚刚好现在在入职的熟悉时期。晚上的时候趁机把这篇写完,顺便也借机会完成一下我们组的新手村任务。各位有兴趣来字节跳动的朋友们,可以把简历发送给我邮箱,我来帮你内推哟。

今天本文主要讲解:

APK文件反编译

  • 什么是反编译
  • 如何防止反编译
  • APK文件的基本构造

APK加固的方案原理

  • APK加固总体架构
  • APK打包基本流程
  • Dex文件的意义

AES加密项目实战

  • APK加固项目实战
  • APK脱壳技术实战

一.APK文件反编译

1.什么是反编译
  • 定义:
    利用编译程序从源语言编写的源程序产生目标程序的过程
2.怎么进行反编译?

先了解apk的文件构造结构

二.加固方案思想

一个程序员的故事:

辛辛苦苦找到一个对象,结婚后发现是个母夜叉。不给管钱就闹,晚上睡觉她趴着睡,导致这程序员无法去洗脚了。然而这个程序员很努力,平时除了上班,还能够做点外包,赚点外快。所以他就想到了把工资卡上交,而把赚到的外快放到了自己的小金库。从此过上了性福生活

一个加密的故事:

通过将非核心的dex文件进行暴露来达到保护核心dex文件的目的。

三.基本原理

3.1Apk打包流程

加壳是在原来apk的基础上加一层保护壳,dex文件修改了就需要重新打包,否则apk安装不了。这就需要我们详细学习apk如何打包的

3.2Dex文件是什么

加固的目的是保护dex,直接而言就是对dex文件进行操作,对dex文件动刀子,必须知道dex文件是什么,能否直接动刀子

3.3Dex文件加载流程

加壳后的文件是不能直接用的,dex文件是加密的,所以我们需要对他进行解密,解密后的dex文件如何加载?

3.4APK文件是怎么生产的


四.加固总体框架


那么问题来了:

  • 如何达到加密效果?
  • 为什么是两个系列的dex?
  • 壳dex 怎么来的
  • 壳dex如何保护源dex?
  • 如何签名?
  • 如何运行新dex(如何脱壳)?
4.1加密过程

4.2APK文件如何签名


4.3APK文件如何运行(脱壳)

4.4如何制定某些类在 main dex中
  • multiDexKeepFile:手动加入要放到Main.dex中的类
com.umeng.analytics.Abb.class
  • multiDexKeepProguard:以Proguard的方式手动加入要放到的Main.dex中的类
-keep public class com.tencent.bugly.**{*;}

由于篇幅原因,这份面试宝典已经被整理成了PDF文档,有需要Android面试宝典全套完整文档的麻烦点赞+点击这里即可获取资料免费领取方式!

本文在开源项目:腾讯文档中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

54054)]

本文在开源项目:腾讯文档中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

阿里P8成长路线!我的头条面试经历分享,吊打面试官系列!相关推荐

  1. 7年老Android一次坑爹的面试经历,吊打面试官系列!

    前言 刚从阿里面试回来,想和大家分享一些我的面试经验,以及面试题目. 这篇文章将会更加聚焦在面试前需要看哪些资料,一些面试技巧以及一些这次的面试考题. 一个朋友是前阿里人,37岁,离职后就职美团.以前 ...

  2. 华为人工智能岗位面试经历分享

    https://blog.csdn.net/csdnsevenn/article/details/81916843 博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP ...

  3. 2017 后端面试经历分享

    2017 后端面试经历分享 0.背景 博主本人 2015 年毕业于郫县某 985 大学通信工程系,因为大学期间一直自己创业所以错过了大四秋招春招,毕业后又在北京继续创业一年,但在创业公司一直无法沉淀技 ...

  4. ​浅谈 Java 后端开发工程师腾讯面试经历分享总结

    最近一段时间考虑到换工作,打算整理一下网络上曾经面试者分享的的面试经历并结合自己以往的面试经历和经验,帮助大家获取到互联网大厂的入职通知书,也就是入职 offer. 本文整理网络面试者和本人的面试经历 ...

  5. 南方航空java面试_面试经验 南航面试经历分享

    南方航空面试经历分享 前言 每个人的成功经验都是来之不易的,今天小V的面经写得有点长,为了给大家写的详细一些,参考多一些,也是拼了! 小V的基本情况:小V是一名大三的在校学生,学的还是搬砖的理工科专业 ...

  6. 【实习之路】腾讯、小米日常实习生面试经历分享——小米篇

    文章目录 前言 正文--小米篇 一面经验 二面经验 总结 前言 最近在投递实习岗位,面试了腾讯跟小米两家公司,分享一下经历. 正文--小米篇 投递渠道:BOSS直聘. BOSS直聘上有个小米的面试官私 ...

  7. FPGA 面试经历分享

    大家好,我是小菜鸟.寒假期间经过师兄推荐面试了一个 FPGA 岗位的实习,共经历了两次技术面试,虽然最后没有通过,但是这次面试收获还是蛮多的. 这是我第一次面试 FPGA 方向的岗位,一时竟不知要从哪 ...

  8. 天顺智慧能源,思科,平安科技面试经历分享吧

    面试经历分享吧 需要面试题,请私我 1.天顺智慧能源有限公司(上海) 面试java岗位 1.首先,人事会给你一份笔试试题,见我博客,然后java工程师,让你自我介绍,问一下高并发知识,你所从事的项目等 ...

  9. 阿里P7亲自教你!我的头条面试经历分享,完整PDF

    前言 转眼间,2020 年已过去一大半了,2020 年很难,各企业裁员的消息蛮多的,降职,不发年终奖等等.2020 年确实是艰难的一年.然而生活总是要继续,时间不给你丧的机会!如果我们能坚持下来,不断 ...

最新文章

  1. Javascript基础知识 - 基础部分
  2. kafka的安装与启动运行
  3. 1135 Is It A Red-Black Tree (30 分)【难度: 难 / 知识点: 红黑树 未完成】
  4. 设计模式之【外观模式-Facade】
  5. php读取dxf,分享个DXF转G代码的实例
  6. linux rsync删文件速度,Linux下使用rsync最快速删除大量文件的方法
  7. div 设置a4大小_如何在A4纸张尺寸页面制作HTML页面?
  8. php购物网站类的继承和多态,类的继承与多态
  9. 螃蟹保存方法保存时间_中秋吃不完的螃蟹如何保存?蟹农:生螃蟹冰箱冷藏,熟螃蟹别隔夜...
  10. Qcon2017实录|Service Mesh:下一代微服务
  11. 批处理打开URL总结
  12. 数据库——求候选键的方法
  13. 安装CoffeeScript
  14. 【Hadoop】Hadoop常见的操作命令
  15. 制作指定比例尺的专题地图
  16. hdu 4598 Difference(奇圈判定+差分约束)
  17. 服务器系统解决方案,服务器操作系统解决方案
  18. 后疫情时代的酒旅业,让用户“安心”成为行业复苏唯一解?
  19. 前端入门学习笔记十九
  20. 「伯克利大学」 的计算机入门教程

热门文章

  1. ntp如何确认与服务器偏差_LED电子时钟显示屏如何实现时间同步统一校时?
  2. axi ps读写pl_PL读写DDR:Datamover能干什么
  3. php缓存类,PHP缓存类
  4. django 日志写入mysql_如何将django orm模型 写入数据库
  5. leetcode 654. 构造最大二叉树 思考分析
  6. kotlin实现继承_Kotlin程序| 继承的例子
  7. 带有示例的Python File readlines()方法
  8. 方法:求两个数之和 判断两数是否相等
  9. C++11 右值引用与常量左值引用保存临时变量(函数返回值)的底层分析
  10. 远控免杀专题2---msfvenom的隐藏参数