一、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源碼
四、運作結果
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iY0IjMldjNwgTZiZTNjVTYkBjY4IDZihTN2I2NlVmM28CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
禁止非法,後果自負
歡迎關注公衆号:逆向有你
歡迎關注視訊号:之乎者也吧