绕过某乎的签名校验

398 阅读4分钟

ApplicationPackageManager->public PackageInfo getPackageInfoAsUser(String packageName, int flags, int userId) 返回签名之前修改: Signature out = pi.signatures[0]; Class aClass = Signature.class; Field signature=aClass.getDeclaredField("mSignature"); signature.setAccessible(true); byte[] a = (byte[]) signature.get(out); byte[] bytes = new byte[585];
String[] originSignature = "48,-126,2,69,48,-126,1,-82,-96,3,2,1,2,2,4,81,-126,23,114,48,13,6,9,42,-122,72,-122,-9,13,1,1,5,5,0,48,103,49,11,48,9,6,3,85,4,6,19,2,67,78,49,15,48,13,6,3,85,4,8,19,6,80,101,107,105,110,103,49,15,48,13,6,3,85,4,7,19,6,80,101,107,105,110,103,49,18,48,16,6,3,85,4,10,19,9,122,104,105,104,117,46,99,111,109,49,18,48,16,6,3,85,4,11,19,9,122,104,105,104,117,46,99,111,109,49,14,48,12,6,3,85,4,3,19,5,90,104,105,104,117,48,30,23,13,49,51,48,53,48,50,48,55,51,54,49,56,90,23,13,51,56,48,52,50,54,48,55,51,54,49,56,90,48,103,49,11,48,9,6,3,85,4,6,19,2,67,78,49,15,48,13,6,3,85,4,8,19,6,80,101,107,105,110,103,49,15,48,13,6,3,85,4,7,19,6,80,101,107,105,110,103,49,18,48,16,6,3,85,4,10,19,9,122,104,105,104,117,46,99,111,109,49,18,48,16,6,3,85,4,11,19,9,122,104,105,104,117,46,99,111,109,49,14,48,12,6,3,85,4,3,19,5,90,104,105,104,117,48,-127,-97,48,13,6,9,42,-122,72,-122,-9,13,1,1,1,5,0,3,-127,-115,0,48,-127,-119,2,-127,-127,0,-104,52,-76,67,118,-73,86,-22,58,122,34,-78,-56,-10,20,-95,-83,-69,17,-52,-126,79,-120,75,92,108,74,95,-90,-33,58,114,112,-19,-123,7,78,107,7,8,5,-91,-73,85,46,-26,-41,2,-85,-96,-61,-108,52,-50,-105,-88,-55,-50,-12,124,-61,-37,17,-12,103,-36,-4,77,-90,-95,-64,87,2,-26,-89,72,-53,63,-123,-72,-36,12,45,59,8,24,-60,-117,-85,65,-40,94,80,-102,-98,101,-99,-92,-71,34,-68,5,53,-125,61,-47,40,100,27,-87,77,69,-92,-86,48,33,88,-122,81,111,101,26,32,-26,71,-98,-85,-111,2,3,1,0,1,48,13,6,9,42,-122,72,-122,-9,13,1,1,5,5,0,3,-127,-127,0,83,82,117,-97,6,-35,-99,94,2,77,-113,-91,124,-27,-41,-107,75,-89,74,88,118,127,34,-115,-9,114,103,117,75,-41,-15,-59,74,-117,-21,101,69,-76,-18,-52,72,85,119,-41,-32,60,12,13,-42,6,-110,93,-32,93,-116,11,-126,-39,-84,13,-23,79,-51,-111,-44,-82,-123,-12,110,95,111,-119,-13,-61,97,-124,-113,83,-116,51,68,0,98,50,107,106,7,52,-53,31,67,117,-69,99,93,-39,-128,-46,92,35,-61,42,24,44,-93,-41,117,14,-111,-125,83,104,46,26,118,96,93,-48,-12,12,41,-69,-15,17,-114,-5,48,78".split(",");
for (int i = 0; i <bytes.length; i++) {
bytes[i]=Byte.parseByte(originSignature[i]); } signature.set(out,bytes);