天天看點

安卓逆向 -- 自吐算法(MAC)

一、MAC算法源碼

import javax.crypto.Mac              import javax.crypto.spec.SecretKeySpec              String bs= "逆向有你a";              SecretKeySpec key = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申請一個密鑰,長度内容随便寫              Mac mac = Mac.getInstance("HmacSHA256");//告訴系統我用的加密碼方式是HmacSHA256              mac.init(key);              byte[] macres = mac.doFinal(bs.getBytes(StandardCharsets.UTF_8));//開始加密              System.out.println("HmacSHA1加密(位元組):"+Arrays.toString(macres));              System.out.println("HmacSHA1加密(字元串):"+bytes2HexString(macres));              SecretKeySpec key1 = new SecretKeySpec("12345".getBytes(StandardCharsets.UTF_8), "HmacSHA256");//申請一個密鑰,長度内容随便寫              Mac mac1 = Mac.getInstance("HmacSHA256");//告訴系統我用的加密碼方式是HmacSHA256              mac1.init(key1);              mac1.update("逆向".getBytes(StandardCharsets.UTF_8));              mac1.update("有你".getBytes(StandardCharsets.UTF_8));              byte[] macres1 = mac1.doFinal("a".getBytes(StandardCharsets.UTF_8));              System.out.println(bytes2HexString(macres1));
           

二、分析源碼,需hook的内容

1、hook類是javax.crypto.Mac,javax.crypto.spec.SecretKeySpec

2、hook的方法:SecretKeySpec,doFinal

三、hook源碼

四、運作結果

安卓逆向 -- 自吐算法(MAC)

禁止非法,後果自負

歡迎關注公衆号:逆向有你

歡迎關注視訊号:之乎者也吧

安卓逆向 -- 自吐算法(MAC)
安卓逆向 -- 自吐算法(MAC)