Compare commits
8 changed files with 355 additions and 22 deletions
119
README.md
Normal file
119
README.md
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
# MB ZDefend Bypass Module for MB/MBCP
|
||||
|
||||
|
||||
- Download from [releases tab](/mbcp/mbzdefend-fix/releases)
|
||||
|
||||
- Author : [Cuynu](/cuynu) and [backslashxx](https://github.com/backslashxx) for sed script
|
||||
|
||||
- Status : Working with MBCP!
|
||||
|
||||
- Required app version : MBCP `v6.4.67` and up for `v3.2-mb+` | MB `v6.4.15` up to `v6.4.58` for `v3.0-mb` or lower
|
||||
|
||||
- Required Biz MBBank v2.0 app version : `v1.0.85` and newer :>
|
||||
|
||||
## Why this exists ?
|
||||
- Zimperium and MB Bank development team didn't respect our freedom and privacy by blocking rooted devices (KernelSU/KernelSU-Next/Magisk/APatch), device using LSPosed with a screen showing "THIẾT BỊ JAILBROKEN HOẶC ROOTED" or "JAILBROKEN DEVICE OR ROOTED" (in English) with only "Close app" option.
|
||||
|
||||
## Building
|
||||
```
|
||||
git clone https://git.disroot.org/mbcp/mbzdefend-fix.git
|
||||
cd mbzdefend-fix
|
||||
./createmodule.sh
|
||||
```
|
||||
|
||||
## Source code
|
||||
|
||||
This project are licensed under [MIT License](https://git.disroot.org/cuynu/mbzdefend-fix).
|
||||
|
||||
- For module : Located on [module_new](https://git.disroot.org/cuynu/mbzdefend-fix/src/branch/main/module_new/zdefend-fix)
|
||||
|
||||
- For patched lib (Deprecated) : There is no source code for that as it belong to MB Bank development team and Zimperium. You can make your own patched lib with old method below if you don't want to use my pre-patched lib :)
|
||||
|
||||
## Usage (Module)
|
||||
- Ensure that old root detection (vtap) is bypassed by hiding MB Bank or Biz MBBank v2.0 App from root with any old ways, like Denylist as the module does not handle this old root detection method (For Magisk : [Here](https://www.youtube.com/watch?v=OfFoRltRlME) | For Magisk Delta/Kitsune : [Here](https://www.youtube.com/watch?v=tToyWfJQ-yw)
|
||||
- Download mbzdefend-fix module from [releases](https://git.disroot.org/cuynu/mbzdefend-fix/releases) or clone the repo, then `./createmodule.sh`
|
||||
- Flash with your root app (Magisk, KernelSU, KernelSU Next, APatch, etc)
|
||||
- It should automatically patches `libZDefend.so` and `libapp.so` then open MB/MBCP or Biz MB Bank v2.0 app once it finished.
|
||||
- NOTE : Every time you need to use MB Bank, you MUST run "Action" on root app -> Modules -> MB ZDefend Bypass instead of open app directly from app drawer (Applies for v6.4.56+ due to server-side MB changes)
|
||||
- NOTE : App will open with 1005/1007 error or stuck on MB logo, DON'T PANIC and wait for error popup appears, then press "Try again" until app enter login screen !!!
|
||||
|
||||
|
||||
# Tested app version (Outdated)
|
||||
- Checked mark is the version that already tested and working~
|
||||
|
||||
- [x] [MB Bank v6.4.58](https://t.me/embeeapks/48) (MBShield) (need workaround)
|
||||
|
||||
- [x] [MB Bank v6.4.57](https://t.me/embeeapks/47) (MBShield) (need workaround)
|
||||
|
||||
- [x] [MB Bank v6.4.56](https://t.me/embeeapks/46) (MBShield) (need workaround)
|
||||
|
||||
- [x] [MB Bank v6.4.55](https://t.me/embeeapks/45) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.54](https://t.me/embeeapks/43) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.53](https://t.me/embeeapks/42) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.52](https://t.me/embeeapks/41) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.51](https://t.me/embeeapks/36) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.50](https://t.me/embeeapks/35) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.49](https://t.me/embeeapks/32) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.48](https://t.me/embeeapks/30) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.47](https://t.me/embeeapks/29) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.46](https://t.me/embeeapks/28) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.45](https://t.me/embeeapks/25) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.44](https://t.me/embeeapks/24) - No Zimperium found. (MBShield)
|
||||
|
||||
- [x] [MB Bank v6.4.43](https://t.me/embeeapks/23) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.42](https://t.me/embeeapks/22) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.41](https://t.me/embeeapks/21) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.40](https://t.me/embeeapks/20) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.39](https://t.me/embeeapks/19) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.38](https://t.me/embeeapks/18) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.37](https://t.me/embeeapks/17) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.36](https://t.me/embeeapks/16) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.35](https://t.me/embeeapks/14) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.34](https://t.me/embeeapks/13) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.33](https://t.me/embeeapks/11) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.32](https://t.me/embeeapks/9) (MBShield) (no crashes)
|
||||
|
||||
- [x] [MB Bank v6.4.31](https://t.me/embeeapks/6) (MBShield)
|
||||
|
||||
- [x] [MB Bank v6.4.30](https://t.me/mbmobileold/198) (MBShield)
|
||||
|
||||
- [x] [MB Bank v6.4.29](https://t.me/mbmobileold/197) (MBShield)
|
||||
|
||||
- [x] [MB Bank v6.4.28](https://t.me/mbmobileold/196) (MBShield)
|
||||
|
||||
- [x] [MB Bank v6.4.27](https://t.me/mbmobileold/195) (MBShield)
|
||||
|
||||
|
||||
|
||||
## How this was done (Pre-patched binary only) (OUTDATED)
|
||||
- Use HxD Hex Editor (can be run on Linux env with wine)
|
||||
- Get `libZDefend.so` from MB Bank app, APKs can be get from Google Play or Aurora Store
|
||||
- For `libvvb2060.so`, create a empty file and name it as `libvvb2060.so`
|
||||
- Open `libZDefend.so` with HxD Hex Editor, use Replace feature (Ctrl + R)
|
||||
- In search for field, type `zimperium`
|
||||
- In replace with field, fill 9 empty blank space characters or any random words that has 9 characters -> Replace all (Be careful, if something went wrong then modified `libZDefend.so` file will not work at all)
|
||||
- After HxD replaced zimperium with 9 empty black space characters or empty, save it with (Ctrl + S)
|
||||
- Copy that`libZDefend.so` you just modified to MB Bank lib folder
|
||||
- Force close MB Bank app if its not completely stopped, then open MB Bank app again, from now its should load new library and the root & hook detection from Zimperium should be bypassed
|
||||
|
|
@ -5,16 +5,16 @@ COMMIT="$(git rev-parse --short HEAD)"
|
|||
|
||||
echo "Creating module (*.zip)..."
|
||||
cd module_new/zdefend-fix
|
||||
zip -r mbzdefend_fix_bindhosts_$COMMIT.zip . >/dev/null 2>&1
|
||||
zip -r mbzdefend_fix_$COMMIT.zip . >/dev/null 2>&1
|
||||
cd ..
|
||||
cd ..
|
||||
mv module_new/zdefend-fix/mbzdefend_fix_*.zip mbzdefend_fix_bindhosts_$COMMIT.zip
|
||||
mv module_new/zdefend-fix/mbzdefend_fix_*.zip mbzdefend_fix_$COMMIT.zip
|
||||
|
||||
if [ -f mbzdefend_fix_*.zip ]; then
|
||||
echo "Module saved to [mbzdefend_fix_bindhosts_$COMMIT.zip], try to flash it :>"
|
||||
echo "Module saved to [mbzdefend_fix_$COMMIT.zip], try to flash it :>"
|
||||
rm -rf module_new/zdefend-fix/*.zip
|
||||
else
|
||||
echo "Where is [mbzdefend_fix_bindhosts_$COMMIT.zip] ?"
|
||||
echo "Where is [mbzdefend_fix_$COMMIT.zip] ?"
|
||||
echo "Did module actually created yet... Try fetch repo and use command again!"
|
||||
echo "If your system doesn't have [zip], pls install it"
|
||||
fi
|
||||
|
|
|
|||
197
module_new/CHANGELOG.md
Normal file
197
module_new/CHANGELOG.md
Normal file
|
|
@ -0,0 +1,197 @@
|
|||
# MBZDefend-Fix by Cuynu
|
||||
Bypass MB Bank zimperium root/hook detection (does not bypass VTAP V-Key root detection)
|
||||
|
||||
Main repository : [Disroot Forgejo](https://git.disroot.org/mbcp/mbzdefend-fix/)
|
||||
|
||||
* As of v3.1-mb+, MBCP is required due to MB limitations from original app.
|
||||
|
||||
## Changelogs :
|
||||
|
||||
- v4.4-mb
|
||||
```
|
||||
feat: zdefend-fix(hosts): new zimperium eu host
|
||||
feat: zdefend-fix(action.sh): delete all files with size larger than 2000kb
|
||||
feat: zdefend-fix(action.sh): check for mountify & handle disabled metamodule
|
||||
fix: zdefend-fix(action.sh): missing timeout check & wrong exit condition
|
||||
feat: zdefend-fix(action.sh): check for network before zimperium test
|
||||
fix: zdefend-fix(module.prop): typo & correct vtap meaning
|
||||
feat: zdefend-fix(action.sh): new implementation for v6.5.7+
|
||||
fix: zdefend-fix(customize.sh): module failing to install
|
||||
feat: zdefend-fix(customize.sh): check for built-in magisk systemless hosts and disable it
|
||||
feat: zdefend-fix(customize.sh): check for v6.5.7+ and use notify to use new method
|
||||
feat: zdefend-fix(customize.sh): use new method to detect original app
|
||||
fix: zdefend-fix(customize.sh): missing folder condition checks
|
||||
feat: zdefend-fix(customize.sh): remove vtap firmware from app data folder & misc changes
|
||||
feat: zdefend-fix(customize.sh): check for older LSPosed and open link to install Vector
|
||||
```
|
||||
|
||||
- v4.3-mb
|
||||
```
|
||||
fix: zdefend-fix(customize.sh): missing flags
|
||||
feat: zdefend-fix(customize.sh): handle app reinstallation fail in selinux permissive case
|
||||
fix: zdefend-fix(customize.sh): app installation failure does not exit
|
||||
feat: zdefend-fix(customize.sh): handle reinstall app after MBCP app check
|
||||
```
|
||||
|
||||
- v4.2-mb
|
||||
```
|
||||
feat: zdefend-fix(customize.sh): handle selinux permissive & move from vtapfix to afterinstall
|
||||
feat: customize.sh: check for bindhost & require user to install bindhost variant instead
|
||||
feat: customize.sh: set selinux to enforcing
|
||||
fix: customize.sh: wrong ANDROIDSDK version
|
||||
```
|
||||
|
||||
- v4.1-mb
|
||||
```
|
||||
feat: customize.sh: check for already bypassed app
|
||||
feat: customize.sh: check vtap status again by call from vtapfail function & misc changes
|
||||
feat: new VTAP fail check method & vtapfail/vtapstillfail as a function
|
||||
fix: customize.sh: wrong second
|
||||
feat: do not block installation for kitsune 30.6 & nirtal magisk users
|
||||
fix: customize.sh: reduce to just exit instead of uninstalling malicious magisk app
|
||||
feat: customize.sh: timer before uninstallation
|
||||
feat: customize.sh: service.sh: detect and uninstall unknown magisk
|
||||
```
|
||||
|
||||
- v4.0-mb
|
||||
```
|
||||
feat: service.sh: delete module itself if proprietary kitsune mask is found
|
||||
feat: customize.sh: hide com.tsng.hidemyapplist package during module installation
|
||||
feat: customize.sh: enforce foss kitsune mask
|
||||
fix: wrong ip
|
||||
feat: redirect to fake IP instead
|
||||
fix: customize.sh: unzip shortcut after termux bootstrap is found
|
||||
feat: customize.sh: depends on syslang to open right mbcpinstall page
|
||||
```
|
||||
|
||||
- v3.9-mb
|
||||
```
|
||||
feat: action.sh: also check vtap provision status for action script
|
||||
```
|
||||
|
||||
- v3.8-mb
|
||||
```
|
||||
fix: customize.sh: execute denylist fix before vtap check
|
||||
```
|
||||
- v3.7-mb
|
||||
```
|
||||
feat: bump v3.7-mb
|
||||
feat: createmodule.sh: commit id after module name
|
||||
feat: vtapstillfail.sh: open vtapfix after vtap failling to init
|
||||
feat: customize.sh: handle denylist for magisk & depends on syslang to open proper vtapfix web
|
||||
```
|
||||
|
||||
- v3.6-mb
|
||||
```
|
||||
feat: misc changes
|
||||
- remove old patching code (v6.4.55 or older please use older version)
|
||||
- new auto granting app permission
|
||||
- improve code logic
|
||||
- support english & vietnamese language for MBZDefend-Fix notification
|
||||
- other changes idk
|
||||
|
||||
```
|
||||
|
||||
- v3.5-mb
|
||||
```
|
||||
feat: redirect zimperium to localhost
|
||||
```
|
||||
|
||||
- v3.4-mb
|
||||
```
|
||||
feat: adapt with new detection point
|
||||
```
|
||||
|
||||
- v3.3-mb
|
||||
```
|
||||
fix: customize.sh: typo fix
|
||||
feat: vtapstillfail.sh: notice for low-end devices that is failing to properly provision vtap
|
||||
feat: implement MB & termux & magisk check
|
||||
feat: check if vtap is provisioned or not
|
||||
```
|
||||
|
||||
- v3.2-mb
|
||||
```
|
||||
fix: installation failling on some devices
|
||||
```
|
||||
|
||||
- v3.1-mb
|
||||
```
|
||||
moved to new code structure, only works with patched MB app (MBCP)
|
||||
```
|
||||
|
||||
- v3.0-mb
|
||||
```
|
||||
added termux script for easier use
|
||||
```
|
||||
|
||||
- v2.9-mb
|
||||
```
|
||||
workaround for v6.4.56+, ugly but works :<
|
||||
- it's now requires you to run "Action" on root app -> modules -> MB ZDefend Bypass everytime you need to use MB Bank app...
|
||||
```
|
||||
|
||||
- v2.8-mb
|
||||
```
|
||||
open url that guide users follow step to hide vtap detection
|
||||
```
|
||||
|
||||
- v2.6-mb
|
||||
```
|
||||
module name changed to "MB ZDefend Bypass"
|
||||
delete fake "libZDefend.so" for both MB Bank & BizMB Flutter
|
||||
add support for Biz MB Bank v2.0 (Flutter)
|
||||
```
|
||||
|
||||
- v2.5-mb
|
||||
```
|
||||
fix module description.
|
||||
```
|
||||
|
||||
- v2.4-mb
|
||||
```
|
||||
disable provider silently
|
||||
```
|
||||
|
||||
- v2.3-mb
|
||||
```
|
||||
disable provider before patching
|
||||
```
|
||||
|
||||
- v2.2-mb
|
||||
```
|
||||
patching [com.mbmobile] only and minor other changes
|
||||
```
|
||||
|
||||
- v2.1-mb
|
||||
```
|
||||
adapt with v6.4.48+
|
||||
```
|
||||
|
||||
- v2.0-mb
|
||||
```
|
||||
deleting /data/magisk to prevent eKYC failling
|
||||
deleting /data/magisk for startup script and actions
|
||||
```
|
||||
- v1.9-mb
|
||||
```
|
||||
- change patch arguments
|
||||
- check for sed version before patching
|
||||
```
|
||||
- v1.8-mb
|
||||
```
|
||||
- fix patching failure on startup for Magisk
|
||||
```
|
||||
- v1.7-mb
|
||||
```
|
||||
- fix patching failure on Magisk by don't use busybox
|
||||
```
|
||||
- v1.6-mb
|
||||
```
|
||||
- Test fix installation issue on Magisk/Kitsune Mask
|
||||
```
|
||||
|
||||
- v1.5-mb
|
||||
```
|
||||
- Initial release
|
||||
```
|
||||
6
module_new/remoteupdate.json
Normal file
6
module_new/remoteupdate.json
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"version": "v4.4-mb",
|
||||
"versionCode": "44",
|
||||
"zipUrl": "https://git.disroot.org/mbcp/mbzdefend-fix/releases/download/v4.4-mb/mbzdefend_fix_6a81cd4.zip",
|
||||
"changelog": "https://git.disroot.org/cuynu/mbzdefend-fix/raw/branch/main/module_new/CHANGELOG.md"
|
||||
}
|
||||
|
|
@ -45,7 +45,6 @@ echo "VTAP status : " && cat '/data/data/com.mbmobile/databases/vtap' | grep -q
|
|||
echo "Checking VTAP status again..."
|
||||
cat '/data/data/com.mbmobile/databases/vtap' | grep -q "true" && echo "VTAP is provisioned!" || vtapstillfail || exit 169
|
||||
|
||||
|
||||
# Delete /data/magisk if it exists so MB doesnt failling when eKYC with error code EKYC3002-MS6998 for Magisk users
|
||||
[[ -d /data/adb/magisk ]] && rm -r /data/magisk
|
||||
[[ -d /data/adb/magisk ]] && find /data/. -name 'magisk_backup*' -delete
|
||||
|
|
@ -102,6 +101,17 @@ checkmetamodule() {
|
|||
[ ! -d /data/adb/metamodule ] && nometamodule
|
||||
}
|
||||
|
||||
folkmetamodulecheck() {
|
||||
[ ! -d /data/adb/metamodule ] && folkHandle
|
||||
}
|
||||
|
||||
folkHandle() {
|
||||
# enable built-in meta magic mount folk mount api
|
||||
touch /data/adb/.magic_mount_enable
|
||||
echo "This module requires metamodule, but you don't have any installed"
|
||||
echo "So we enabled built-in [Folk Mount API] instead. Please reboot and run action again."
|
||||
exit 1
|
||||
}
|
||||
|
||||
zimperiumpresent() {
|
||||
echo "Zimperium still present! Cannot continue :("
|
||||
|
|
@ -109,6 +119,8 @@ zimperiumpresent() {
|
|||
[ -f /data/adb/modules/mountify ] && echo "You are using [Mountify] metamodule!" && echo "Please install [bindhosts] module and use MBZDefend-Fix bindhosts variant or use custom DNS with host blocking instead!" && exit 1
|
||||
[ -f /data/adb/metamodule/disable ] && echo "Current installed metamodule is disabled, enabling again!" && rm -f /data/adb/metamodule/disable && echo "Reboot and try again?" && exit 1
|
||||
[ -f /data/adb/ksud ] && cat /data/adb/ksud | grep -q ksud::metamodule && checkmetamodule
|
||||
# check for folkpatch before apatch
|
||||
[ -f /data/adb/apd ] && cat /data/adb/apd | grep -q FolkPatch && folkmetamodulecheck
|
||||
[ -f /data/adb/apd ] && cat /data/adb/apd | grep -q apd::metamodule && checkmetamodule
|
||||
echo "Please remove any module override hosts, or use alternative DNS with zimperium host blocking!"
|
||||
exit 1
|
||||
|
|
|
|||
|
|
@ -50,22 +50,13 @@ notmbcp() {
|
|||
exit 1
|
||||
}
|
||||
|
||||
# Replacement for /system/etc/hosts
|
||||
# Fixes module being disabled due to bindhosts module
|
||||
nobindhosts() {
|
||||
echo "[bindhosts] module not found"
|
||||
echo "Please use normal MBZDefend-Fix module instead !"
|
||||
exit 169
|
||||
bindhostfound() {
|
||||
echo "Bindhost module found !!"
|
||||
echo "Please install MBZDefend-Fix with [bindhost] variant instead!"
|
||||
exit 1
|
||||
}
|
||||
|
||||
bindhosts() {
|
||||
echo "bindhosts module found ! Applying blacklist rules"
|
||||
[ $(cat /data/adb/bindhosts/blacklist.txt | grep zimperium*) ] || echo "*.zimperium.com" >> /data/adb/bindhosts/blacklist.txt
|
||||
}
|
||||
|
||||
[ -d /data/adb/bindhosts ] && bindhosts || nobindhosts
|
||||
|
||||
|
||||
# old HideMyAppList is triggering VTAP, that's why it's must be hidden
|
||||
tsnghma() {
|
||||
echo "Dr-TSNG HideMyAppList detected!"
|
||||
echo "Hiding app..."
|
||||
|
|
@ -152,6 +143,8 @@ magiskhosts() {
|
|||
|
||||
[[ -d /data/adb/modules/hosts ]] && magiskhosts
|
||||
|
||||
[[ -d /data/adb/modules/bindhosts ]] && bindhostfound
|
||||
|
||||
[[ -d /data/data/com.tsng.hidemyapplist ]] && tsnghma
|
||||
|
||||
[[ -d /data/data/io.github.Nirtal0.magisk ]] && maliciousmagisk
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
id=zdefend-fix
|
||||
name=MB ZDefend Bypass (bindhosts)
|
||||
version=v4.4-mb-bindhosts
|
||||
name=MB ZDefend Bypass
|
||||
version=v4.4-mb
|
||||
versionCode=44
|
||||
author=cuynu, xfirstnamelastname
|
||||
description=Bypass "Rooted device or JAILBROKEN" screen for MBCP App by trick the app detection libraries. \nNOTE : This does not bypass V-Key (VTAP) screen, you have to fix it if you are using Magisk (or original KernelSU).
|
||||
updateJson=
|
||||
updateJson=https://git.disroot.org/cuynu/mbzdefend-fix/raw/branch/main/module_new/remoteupdate.json
|
||||
|
|
|
|||
6
module_new/zdefend-fix/system/etc/hosts
Normal file
6
module_new/zdefend-fix/system/etc/hosts
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
127.0.0.1 localhost
|
||||
::1 localhost
|
||||
127.0.0.1 zimperium.com
|
||||
127.0.0.1 cdn.zimperium.com
|
||||
127.0.0.1 gts.zimperium.com
|
||||
127.0.0.1 eu01.zimperium.com
|
||||
Loading…
Reference in a new issue