Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seia-soto/libbagbak
The library port of bagbak cli for production.
https://github.com/seia-soto/libbagbak
Last synced: about 11 hours ago
JSON representation
The library port of bagbak cli for production.
- Host: GitHub
- URL: https://github.com/seia-soto/libbagbak
- Owner: seia-soto
- License: mit
- Created: 2023-03-22T08:12:03.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T07:55:48.000Z (over 1 year ago)
- Last Synced: 2024-12-16T11:49:44.177Z (7 days ago)
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/libbagbak
- Size: 943 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# libbagbak
The library port of [bagbak](https://github.com/ChiChou/bagbak).
The version will be updated as `bagbak` updates, and all thanks should be go for the bagbak contributors.- 📦 Bundling ready
- ✨ Fully typed----
## Usage
> **Warning** This library only supports ESM format.
You can try out the following example after cloning this repository via `pnpm ts-node-esm ./example/index.js` after connecting Frida device via USB.
```typescript
import {useUsbDevice} from 'libbagbak/device.js';
import {pull} from 'libbagbak';(async () => {
const device = await useUsbDevice();for (let i = 0; i < 5; i++) {
const hasFailed = await pull(device, {
hint: 'com.nexon.bluearchive',
outdir: './dump',
useExtensions: true,
useColdBootedApplication: true,
})
.catch(error => {
console.error(error);return true;
});if (!hasFailed) {
break;
}
}
})();
```The `pull` function takes Frida `Device` and options to pull out decrypted application from the device.
In the output directory, you'll see the following directory structure: `{outdir}/Payload/{applicationName}/`.See the followings for the options:
### Pulling options
- **hint** (string) The application bundle identifier. (Example: `com.8bit.bitwarden`, `com.nexon.bluearchive`)
- **outdir** (string) The output directory.
- **useExtensions** (boolean) `true` if you want to decrypt extensions. (Optional, Default: `true`)
- **useColdBootedApplication** (boolean) `true` if you want to kill the target application if already opened. (Optional, Default: `true`)### Exporting as IPA
The IPA file format is basically same as `zip`.
You can use `adm-zip` for zipping on Node.JS.We won't handle zipping it on here to make the library portable.
## Development
We match the original `bagbak` version and use submodules for code access.
See [`scripts/build.sh`](scripts/build.sh) for more information how libbagbak references bagbak's code.## License
The license of this project is same with the original repository (bagbak), and distributed under MIT license.