104學習精靈

Android讀書會

Android讀書會
公開教室關注者 26 人
關注教室
yes哥

工程獅

2022/07/17

人证核验应用方案於中國
运用人脸特征的唯一性,集人脸检测、人证比对、证件阅读等技术,快速识别身份证与持证人的真假,满足酒店、宾馆、车站、网吧、政府办事大厅等进行实名制管理的需要。
2 2 854 1
yes哥

工程獅

2022/12/22

owasp-mastg專案
這是 OWASP 移動應用程序安全測試指南 (MASTG) 的官方 GitHub 存儲庫。MASTG 是移動應用程序安全測試和逆向工程的綜合手冊。它描述了驗證OWASP 移動應用程序驗證標準 (MASVS)中列出的控件的技術過程。
附錄
3 0 1761 1
yes哥

工程獅

2022/12/08

DroidKaigi 2022 官方應用
DroidKaigi 2022將於 2022 年 10 月 5 日至 10 月 7 日舉行。我們正在開發其應用程序。讓我們一起開發應用程序,讓它變得令人興奮。
試試看
您可以通過在 Google Play 上獲取它來安裝生產應用程序
這些構建通過移動應用程序分發服務進行分發。
嘗試最新的分期通過下載到設備
iOS
您可以通過在 App Store 上獲取它來安裝生產應用程序。
此應用程序的測試版可在 TestFlight 上獲得。您可以嘗試使用以下公共鏈接測試此應用程序。
在這個項目中,使用Xcode Cloud分發 beta 版本。
0 0 63 0
yes哥

工程獅

2022/11/29

android user agent
WebView myWebView = (WebView)findViewById(R.id.webview);
//get the UA of the current running device:
String userAgent = view.getSettings().getUserAgentString() ;
//set the UA of the webview to this value:
myWebView.getSettings().setUserAgentString(userAgent);
0 0 112 0
yes哥

工程獅

2022/11/24

Android逆向之旅---Hook神器家族的Frida工具
一、前言
在逆向過程中有一個Hook神器是必不可少的工具,之前已經介紹了Xposed和Substrate了,不了解的同學可以看這兩篇文章:Android中Hook神器Xposed工具介紹 和 Android中Hook神器SubstrateCydia工具介紹 這兩篇文章非常重要一個是Hook Java層的時候最常用的Xposed和Hook Native層的SubstrateCydia,可以看我之前的文章比如寫微信插件等都採用了Xposed工具,因為個人覺得Xposed用起來比較爽,寫代碼比較方便。而對於SubstrateCydia工具可以Hook Native層的,本文會介紹一下如何使用。那麼有了這兩個神器為啥還要介紹Frida工具呢?而且這個工具網上已經有介紹了,為什麼還有介紹了,因為這個Frida工具對於逆向者操作破解來說非常方便,所謂方便是他的安裝環境和配置要求都非常簡單兼容性也非常好,因為最近在弄一個協議解密,無奈手機上安裝Cydia之後不兼容導致死機所以就轉向用了這個工具實現了hook,所以覺得這個工具非常好用就單獨介紹一下。
二、環境安裝配置
第一、如何修改Java層的函數參數和返回值
第二、如何打印Java層的方法堆棧信息
第三、如何攔截native層的函數參數和返回值
對於Java層會注重介紹,因為我們用過Xposed工具之後都知道,比如參數是自定義類型怎麼Hook等。不多說了直接用一個案例作為樣本進行操作,為了能夠覆蓋所有的操作可能性案例需要寫的複雜點:
參數和返回值有基本類型,也有自定義類型,接下來我們就開始我們的Frida之旅吧。
這個網上都已經有教程了,因為Frida大致原理是手機端安裝一個server程序,然後把手機端的端口轉到PC端,PC端寫python腳本進行通信,而python腳本中需要hook的代碼採用javascript語言。所以這麼看來我們首先需要安裝PC端的python環境,這個沒難度直接安裝python即可,然後開始安裝frida了,直接運行命令:pip install frida
前提是你需要配置好python環境變量,不然提示pip命令找不到。安裝完成之後,我們再去官網下載對應版本的手機端程序frida-server:https://github.com/frida/frida/releases 注意這裡一定要把frida-server版本和上面PC端安裝的frida版本一致,不然運行報錯的。其實這裡看到真的實現hook功能的是手機端的frida-server,這個也是開源的大家可以研究他的原理。我們也看到這個工具和IDA是不是很類似,也是把手機端的端口轉發到PC端進行通信而已。有了frida-server之後就好辦了,直接push到手機目錄下,然後修改一下文件的屬性即可:
adb push /data/local/tmp frida-server
root# chmod 777 /data/local/tmp/frida-server
然後直接運行這個程序:
/data/local/tmp# ./frida-server
然後把端口轉發到PC端:
adb forward tcp:27042 tcp:27042
adb forward tcp:27043 tcp:27043
到這裡我們就把通信的手機端工作做完了,是不是感覺和Xposed相比非常方便,兼容性非常好,不需要安裝Xposed等工具考慮系統手機等適配問題了。接下來就開始在PC端開始編寫hook程序進行操作了:
這裡代碼也非常簡單,因為安裝好了frida模塊,直接導入模塊,然後調用api獲取設備的session然後hook程序包名,接著就可以執行js腳本代碼進行hook操作,然後打印消息:
這裡用了python的print函數打印,其實如果想要打印可以在上面的js腳本中使用console.log也是可以的,看自己的習慣了。所以這裡我們看到腳本的大致流程就是最外面用python引用frida庫進行和設備通信,然後編寫js腳本執行hook操作。所以這裡最主要的還是js腳本也就是需要理解js語法了。不過這個沒啥難度的。好了以上的準備條件都弄完了,下面就開始分部拆解操作看看如何涵蓋我們平常使用的hook案例。
0 0 558 0
yes哥

工程獅

2022/07/17

虹软人脸识别Android Sample Code
AFR_FSDKInterface engine = new AFR_FSDKEngine();
//用来存放提取到的人脸信息, face_1 是注册的人脸,face_2 是要识别的人脸
AFR_FSDKFace face1 = new AFR_FSDKFace();
AFR_FSDKFace face2 = new AFR_FSDKFace();
//初始化
//初始化人脸识别引擎,使用时请替换申请的 APPID 和 SDKKEY
AFR_FSDKError error = engine.AFR_FSDK_InitialEngine("APPID", "SDKKEY");
Log.d("com.arcsoft", "AFR_FSDK_InitialEngine = " + error.getCode());
//输入的 data 数据为 NV21 格式(如 Camera 里 NV21 格式的 preview 数据);人脸坐标一般使用人脸检测返回的 Rect 传入;人脸角度请按照人脸检测引擎返回的值传入。
error = engine.AFR_FSDK_ExtractFRFeature(data1, width, height, AFR_FSDKEngine.CP_PAF_NV21, new Rect(210, 178, 478, 446), AFR_FSDKEngine.AFR_FOC_0, face1);
Log.d("com.arcsoft", "Face=" + face1.getFeatureData()[0]+ "," + face1.getFeatureData()[1] + "," + face1.getFeatureData()[2] + "," + error.getCode());
error = engine.AFR_FSDK_ExtractFRFeature(data1, width, height, AFR_FSDKEngine.CP_PAF_NV21, new Rect(210, 170, 470, 440), AFR_FSDKEngine.AFR_FOC_0, face2);
Log.d("com.arcsoft", "Face=" + face2.getFeatureData()[0]+ "," + face2.getFeatureData()[1] + "," + face2.getFeatureData()[2] + "," + error.getCode());
//score 用于存放人脸对比的相似度值
AFR_FSDKMatching score = new AFR_FSDKMatching(); error = engine.AFR_FSDK_FacePairMatching(face1, face2, score); Log.d("com.arcsoft", "AFR_FSDK_FacePairMatching=" + error.getCode()); Log.d("com.arcsoft", "Score:" + score.getScore());
//销毁人脸识别引擎
error = engine.AFR_FSDK_UninitialEngine();
Log.d("com.arcsoft", "AFR_FSDK_UninitialEngine : " + error.getCode());
————————————————
版权声明:本文为CSDN博主「chinashushi」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
34 0 417 1
yes哥

工程獅

2022/06/01

[考試心得]我通過SCJP認證考試了
以下是一些個人經驗,供有興趣考SCJP的朋友參考:
1.SCJP在哪報名?
A.首先要有考試券,我的考試券是去年昇陽公司舉辦的活動中買的,一般好像要去考試中心買,如恆逸資訊或者巨匠電腦。
B.有了考試券後,我是直接上網報名,請至http://www.2test.com。
2.我在哪裡考?
我在恆逸資訊的Ti8考場考,整體感覺不錯。雖然考試時間我是安排在10:30,不過我報到之後就可以直接考了。
此外,有可上鎖的置物櫃。美中不足的是進場考試並不是提供白紙跟筆,而是薄板跟白版筆,比較粗不好寫。
3.去考試的時候要帶什麼物品?
要帶兩張證件,其中一張要有照片。考試中心現場是跟我驗身份證跟信用卡。
還要帶考試券。我順便帶了網路報名的確認信。
4.我看了哪些教材?
就「Java認證SCJP5.0猛虎出閘」跟「SCJP Java 5專業認證手冊」兩本,要注意的是兩本都有些錯誤,請上網Google一下它們的勘誤表更正。
5.考完之後要做什麼?
聽說可以去Sun CertManager網站觀看考試結果與證書寄送情況,但是目前我還登入不進去。準備觀察幾天再說。不過這個網站,個人感覺真的是一點都不User friendly。
0 0 595 0
yes哥

工程獅

2022/06/01

Java證照資料sun certificated java
sun certificated java programmer (SCJP)
壹種Java認證考試
對于Java程序設計員,Sun推出兩項認證:Sun Certificated Java Programmer (SCJP)和Sun Certificated Java Developer(SCJD)。
SCJP 可以說各種Java認證的基礎,相對于SCJD來說,SCJP跟側重于測驗您的Java程序設計概念及能力,內容偏重于Java語法及JDK的內容。其對應的最主要的學習課程是SL-275。SCJP 的學習/考試過程是相對相對比較明確的,首先學員參加SL-275的培訓課程(標准費用大致在2600人民幣,包括考試券、教材費),也可以單獨購買考試券(Certification Voucher,費用現在是1250元),然後在Prometric考試中心參加考試。通過後獲得Sun頒發的SCJP認證證書。
0 0 673 0
關於教室
Samples
BasicSample - Shows how to persist data using a SQLite database and Room. Also uses ViewModels and LiveData.
PersistenceContentProviderSample - Shows how to expose data via a Content Provider using Room.
GithubBrowserSample - An advanced sample that uses the Architecture components, Dagger
教室標籤
學習發起人
yes哥
工程獅
5 回答 20 分享 3 教室
發起人簡介
簡單寫nn ...更多