安卓系統編譯工程師
Ⅰ 什麼是android逆向工程師
必須掌握的技能
1、負責安卓程序的加解密和數據傳輸分析、拆解、逆向等工作;
2 、逆向APK,了解運行過程;
3 、Andorid本地提權獲得root許可權;
4 、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5 、熟悉Android開發,了解打包、反編譯、破解流程;
6 、so破解。
目前了解的如下:
1,加解密:這就很多了,一般都是遇到後再折騰解密,而且解密代碼和秘鑰一般都在代碼裡面。
2,Andorid本地提權獲得root許可權,一般真機是用recovery刷機包,但是病毒提權是怎麼樣的
目前掌握的一種提權的是像輸入命令行一樣輸入su並且用pm提權
還有一種是修改init.rc文件
3,ida動態調式和代碼跟蹤
4,打包,編譯和破解的流程是什麼樣的?
5,so破解:一般就是破殼。各種殼(360,娜迦等等)
加殼的另一種常用的方式是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。大多數病毒就是基於此原理。加殼的程序經常想盡辦法阻止外部程序或軟體對加殼程序的反匯編分析或者動態分析,以達到它不可告人的目的。這種技術也常用來保護軟體版權,防止被軟體破解。
6,了解反破解的技術
目前掌握的技術有:
1,反模擬器
2,反靜態代碼分析器如:反jeb
應該也是有很多反ida的,也就是加殼。
任職要求
1、具有豐富的Android開發分析經驗,熟悉android系統架構,熟悉android安全機制;
2、精通匯編語言、Java、C/C++語言,熟悉Smali語言,對逆向工程有濃厚興趣;
3、熟練掌握ida、gdb逆向分析工具;
4、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5、熟悉so和Java層hook;
6、熟悉Android開發,了解打包、反編譯、破解流程;
7、深入理解arm Linux和Android底層運行機制;
8、熟練掌握各種調試工具:Smali、Dedexer、Dexmp、Apktool、Dex2jar、jd-gui。
Ⅱ 編譯器工程師 ,前途 咋樣,工資是多少啊。應屆生要不要。。。
很有前途,但是你要基礎知識很扎實。否則的話,別人不要。會應用的人很多。
Ⅲ 安卓開發需要學習什麼
學習分三個階段:
1,Android基礎階段:平台架構特性(JAVA/C) Market/應用程序組件 環境搭建與部署/打包與發布 AVD/DDMS/AAPT 調試與測試 相關資源訪問/資源製作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及深層實現
2,Android進階初級:組件Widget/ 菜單Menu/ 布局Layout 詳解 Xml解析(Pull/Dom/Sax)/JNI 解析SQL資料庫原理,。
SQLite /SharedPreferences/File詳解 多媒體Audio/Video/Camera 詳解
3,Android進階高級:藍牙/WIFI SMS/MMS 應用實現 深層次解析GPS原理。
實現LocationManager/LocationProvider 進行定位/跟蹤/查找/趨近警告以及Geocoder正逆向編解碼等技術細節 2D圖形庫(Graphics/View)詳解 SDCARD/感測器/手勢 應用實現
(3)安卓系統編譯工程師擴展閱讀:
知識體系
1、Unix/Linux平台技術:基本命令,Linux下的開發環境
2、企業級資料庫技術:SQL語言、SQL語句調優、Oracle資料庫技術
3、Java 語言核心技術:Java語言基礎、Java面向對象編程、JDK核心API、Java集合框架、Java網路編 程、JavaI/O編程、Java多線程編程、Java異常機制、Java安全、JDBC、XML
4、軟體工程和設計模式:軟體工程概述、配置管理及SVN、UML、基本設計模式
5、Android應用開發基礎:Android開發平台、Eclipse+ADT開發環境、AVD及感測模擬器調試、Android核心組件、Android常用組件、Android高級組件、文件及網路訪問、SQLite資料庫編程、後台服務編程
6、互聯網核心技術: HTML、CSS、JavaScript、JQuery、Ajax應用
7、Android高級應用開發:音頻視頻攝像頭、互聯網應用、GPS和位置服務、Google Map、2D3D繪制、感測器開發、游戲開發、電話及SMS服務、網路BluetoothWi-Fi等。
8、Android系統級開發:移植、驅動、NDK(C方向)。
9、JavaEE核心技術:Servlet核心技術、JSP核心技術、Struts、Spring、Hibernate框架。