阿里P8成長路線!我的頭條面試經歷分享,吊打面試官系列!

正式加入字節跳動,分享一點面試小經驗

今天正式入職了字節跳動。工號超吉利,尾數是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文件是怎么生產的

image.png

四.加固總體框架


那么問題來了:

  • 如何達到加密效果?
  • 為什么是兩個系列的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)]

本文在開源項目:騰訊文檔中已收錄,里面包含不同方向的自學編程路線、面試題集合/面經、及系列技術文章等,資源持續更新中…

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386664.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386664.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386664.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實驗十一:圖形界面二

實驗程序如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Example1 extends JFrame { private int add1,sub2,mul3,div4; private int op0; boolean ifOp; private String output"0"; private Button[] jbanew Button…

Docker安裝部署ELK教程 (Elasticsearch+Kibana+Logstash)

Elasticsearch 是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。 Logstash 是一個完…

阿里P8面試官都說太詳細了,面試資料分享

背景 知乎客戶端中有一個自己維護的 Hybrid 框架&#xff0c;在此基礎上開發了一些 Hybrid 頁面&#xff0c;當需要前端或者客戶端開發接口的時候&#xff0c;就涉及到聯調的問題。 和一般的 前端 <> 服務端&#xff0c;或者 客戶端 <> 服務端 類似&#xff0c;前…

virtual和override

偶然間看到的題&#xff0c;借此記錄。 class Program{static void Main(string[] args){D d new D(); //第一個D是申明類&#xff0c;第二個D是實例類A a d;B b d;C c d;a.F();b.F();c.F();d.F();}class A{public virtual void F() { Console.WriteLine("A.F")…

阿里內部資料!如何試出一個Android開發者真正的水平?系列教學

前言 馬爸爸總結了一句話&#xff1a;跳槽&#xff0c;要么是錢不到位&#xff0c;要么是受了委屈。 我給自己這次的跳槽經歷做了一個分析&#xff0c;希望能對那些想換工作的朋友有所幫助。 許多朋友想換工作&#xff0c;但是對“換工作”的理解可能僅限于寫簡歷、投簡歷、…

CentOS7 linux下yum安裝redis以及使用

CentOS7 linux下yum安裝redis以及使用 1.安裝redis數據庫 1 yum install redis 2.下載fedora的epel倉庫 yum install epel-release 3.啟動redis服務 systemctl start redis 4.查看redis狀態 systemctl status redis systemctl stop redis 停止服務 systemctl restart r…

Codeforces 1182A Filling Shapes

題目鏈接&#xff1a;http://codeforces.com/problemset/problem/1182/A 思路&#xff1a;n為奇數時不可能完全填充&#xff0c;ans 0。發現若要完全填充&#xff0c;每倆列可產生倆種情況&#xff0c;所以為 ans 2n/2 AC代碼&#xff1a; 1 #include<bits/stdc.h>2 us…

阿里大神最佳總結Flutter進階學習筆記,技術詳細介紹

開頭 很多人工作了十年&#xff0c;但只是用一年的工作經驗做了十年而已。 高級工程師一直是市場所需要的&#xff0c;然而很多初級工程師在進階高級工程師的過程中一直是一個瓶頸。 移動研發在最近兩年可以說越來越趨于穩定&#xff0c;因為越來越多人開始學習Android開發&…

Mysql 允許所有IP訪問

$ mysql -u root -p Enter password:mysql> use mysql#mysql> GRANT ALL ON *.* to root192.168.1.4 IDENTIFIED BY your-root-password; mysql> GRANT ALL ON *.* to root% IDENTIFIED BY root; mysql> FLUSH PRIVILEGES;

貪心算法小結2

F-Ants 一隊螞蟻在一根水平桿上行走&#xff0c;每只螞蟻固定速度 1cm/s. 當一只螞蟻走到桿的盡頭時&#xff0c;立即從稈上掉落. 當兩只螞蟻相遇時它們會掉頭向相反的方向前進. 我們知道每只螞蟻在桿上的初始位置, 但是, 我們不知道螞蟻向哪個方向前行. 你的任務是計算所有螞蟻…

掌握這些Android開發熱門前沿知識,跳槽薪資翻倍

前言 這是一篇軟文、但是絕對不是雞湯&#xff1b;為啥不是呢&#xff1f;因為我文筆太差…偶爾矯情發發牢騷&#xff08;勿噴&#xff09; 說說程序猿行業 現在社會上給IT行業貼上了幾個標簽&#xff1a;高薪、高危、高大上、禿頂&#xff08;哈哈&#xff09;。這些標簽我…

linux環境-docker安裝rabbitmq

1、進入docker hub鏡像倉庫地址&#xff1a;https://hub.docker.com/ 2、搜索rabbitMq&#xff0c;進入官方的鏡像&#xff0c;可以看到以下幾種類型的鏡像&#xff1b;我們選擇帶有“mangement”的版本&#xff08;包含web管理頁面&#xff09;&#xff1b; 3、拉取鏡像 doc…

揭秘ARouter路由機制,源碼+原理+手寫框架

前言 每個程序員都有一個夢想&#xff0c;那就是進一線互聯網公司深造&#xff0c;不要跟我說你不想進去&#xff0c;如果給你一個這樣的平臺&#xff0c;不管是薪資待遇還是接觸的高度來說&#xff0c;對我們程序員來說都是一個機會&#xff0c;我以前有一個同事&#xff0c;…

docker 安裝 nacos/nacos-server 鏡像并配置本地數據庫

docker pull nacos/nacos-server 啟動鏡像 這里啟動容器的時候參數配置我就不在詳解了&#xff0c;不明白的話&#xff0c;評論區留言&#xff0c;有不會的問題一定要及時詢問&#xff0c;期待你的評論呦&#xff01; docker run --env MODEstandalone --name nacos -d -p 884…

初中 英文

英語過去式與過去完成進行時是在英語語法學習中&#xff0c;非常重要的兩種語法&#xff0c;直接影響著英語能力的好壞。熟練掌握這兩種語法對于學習者來說是至關重要的&#xff0c;今天就為大家整理了有關英語過去式與過去完成進行時的相關用法解析&#xff0c;希望大家可以認…

揭秘!雙非渣本Android四年磨一劍,學習路線+知識點梳理

第一次觀看我文章的朋友&#xff0c;可以關注、點贊、轉發一下&#xff0c;每天分享各種干貨技術和程序猿趣事 由于涉及到的面試題較多導致篇幅較長&#xff0c;我根據這些面試題所涉及到的常問范圍總結了并做出了一份學習進階路線圖???????及面試題答案免費分享給大家&…

Windows上PostgreSQL安裝配置教程

這篇文章主要為大家詳細介紹了Windows上PostgreSQL安裝配置教程&#xff0c;具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下 PostgreSQL的擴展PostGIS是最著名的開源GIS數據庫。 安裝PostgreSQL是第一步。 1.下載PostgreSQL的二進制安裝文件。 PostgreSQL官網…

快遞100接口的調用過程

前言 大部分的商城都需要調用快遞的接口來記錄商城的物流信息&#xff0c;這里就給出一種快遞接口&#xff08;快遞100&#xff09;調用的方法。 正文 一、官方文檔 1. 官方文檔的地址為&#xff1a; https://www.kuaidi100.com/openapi/api_subscribe.shtml 二、具體實現 1. 商…

搞懂開源框架設計思想真的這么重要嗎?終獲offer

正文 從我個人的角度寫寫30多歲碼工的感受&#xff1a;的確是受年齡壓力開始增大了。比如二十多歲的小年輕&#xff0c;可能什么都懂&#xff0c;對組里的東西很熟悉。有時候我也懷疑自己是不是智商不夠&#xff0c;是不是自學能力太差&#xff0c;是不是基礎不行&#xff0c;…

gitlab 修改HTTP連接方式中的IP和端口

修改gitlab.yml文件 cd /opt/gitlab/embedded/service/gitlab-rails/config vim gitlab.yml 修改gitlab host&#xff1a;要修改的IPport&#xff1a;要修改的端口重啟gitlab gitlab-ctl restart