Open enovella opened 4 years ago
Some whiteboxing
package com.vasco.digipass.sdk.utils.utilities.wbc;
public class WbAesUtils {
public static byte[][] init_array2(int arg0, int arg1) {
return new byte[arg0][arg1];
}
public static byte[][][] init_array3(int arg0, int arg1, int arg2) {
return new byte[arg0][arg1][arg2];
}
public static byte[][][][] init_array4(int arg0, int arg1, int arg2, int arg3) {
return new byte[arg0][arg1][arg2][arg3];
}
public static byte[][][][][] init_array5(int arg0, int arg1, int arg2, int arg3, int arg4) {
return new byte[arg0][arg1][arg2][arg3][arg4];
}
public static byte[][][][][][] init_array6(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5) {
return new byte[arg0][arg1][arg2][arg3][arg4][arg5];
}
public static byte[][] init_state() {
return WbAesUtils.init_array2(4, 4);
}
public static byte[][][] init_strips128() {
return WbAesUtils.init_array3(4, 4, 16);
}
public static byte[][][] init_strips32() {
return WbAesUtils.init_array3(4, 4, 4);
}
public static byte[][][][] init_typeIA_input_sbox() {
return WbAesUtils.init_array4(4, 4, 2, 16);
}
public static byte[][][][] init_typeIAs() {
return WbAesUtils.init_array4(4, 4, 0x100, 16);
}
public static byte[][][][] init_typeIB_output_sbox_inv() {
return WbAesUtils.init_array4(4, 4, 2, 16);
}
public static byte[][][][] init_typeIBs() {
return WbAesUtils.init_array4(4, 4, 0x100, 16);
}
public static byte[][][][][] init_typeIIIs() {
return WbAesUtils.init_array5(9, 4, 4, 0x100, 4);
}
public static byte[][][][][] init_typeIIs() {
return WbAesUtils.init_array5(9, 4, 4, 0x100, 4);
}
public static byte[][][][][] init_typeIV_IAs() {
return WbAesUtils.init_array5(4, 4, 15, 2, 0x80);
}
public static byte[][][][][] init_typeIV_IBs() {
return WbAesUtils.init_array5(4, 4, 15, 2, 0x80);
}
public static byte[][][][][][] init_typeIV_IIIs() {
return WbAesUtils.init_array6(9, 4, 4, 3, 2, 0x80);
}
public static byte[][][][][][] init_typeIV_IIs() {
return WbAesUtils.init_array6(9, 4, 4, 3, 2, 0x80);
}
}
Vasco OneSpan uses Promon, which also uses OLLVM:
[14:28 edu@xps ~] > apkid Downloads/cf44e77e11cdcc7c3dc2a4112c369a2fac1637fa757b958302df4291f81aa1de.apk
[+] APKiD 2.1.0 :: from RedNaga :: rednaga.io
[*] Downloads/cf44e77e11cdcc7c3dc2a4112c369a2fac1637fa757b958302df4291f81aa1de.apk!classes.dex
|-> anti_vm : Build.MANUFACTURER check, possible Build.SERIAL check
|-> compiler : dexlib 2.x
[*] Downloads/cf44e77e11cdcc7c3dc2a4112c369a2fac1637fa757b958302df4291f81aa1de.apk!lib/arm64-v8a/libejmfnmkjdmph.so
|-> obfuscator : Obfuscator-LLVM version 3.5
[*] Downloads/cf44e77e11cdcc7c3dc2a4112c369a2fac1637fa757b958302df4291f81aa1de.apk!lib/x86/libejmfnmkjdmph.so
|-> obfuscator : Obfuscator-LLVM version 3.5
[*] Downloads/cf44e77e11cdcc7c3dc2a4112c369a2fac1637fa757b958302df4291f81aa1de.apk!lib/armeabi-v7a/libejmfnmkjdmph.so
|-> obfuscator : Obfuscator-LLVM version 3.5
Working on reversing this too :-) Sent a message your way.
Provide the file
Source: https://www.onespan.com/about/news/united-bulgarian-bank-selects-onespan-help-fight-social-engineering-and-mobile-malware Sample: https://www.apkmonk.com/download-app/bg.ubb.mobile/5_bg.ubb.mobile_2019-11-04.apk/
Describe the detection issue Protector https://www.onespan.com/blog/trust-through-mobile-app-shielding-and-hardening
APKiD current results...
Additional context OneSpan may use Promon underneath in some versions