Skip to content

Commit e193488

Browse files
committed
docs: add workflow docs
1 parent 61e0f56 commit e193488

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ We can Manage **secure**(undecryptable) and **public** enviroment through **reac
3636
<a href="https://www.buymeacoffee.com/numan.dev" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: auto !important;width: auto !important;" ></a>
3737
</div>
3838

39-
---
39+
## See the [How we are protecting ENVs on the app side?](docs/workflow.md).
4040

4141
## Installation
4242

docs/workflow.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# If you are Hacker or Attacker then this challenge is for you
2+
3+
If you are a good attacker or hacker then here is APK: https://drive.google.com/file/d/1tx-NoU5LJzSw78x27wFDMgzw5c74qLkR/view?usp=sharing, I have stored the key name: `API_KEY_FOR_DECOMPILE`, can you try to decompile the value of this key, if you successfully decompile this key then I will give you **100$** as a reward.
4+
5+
# How we are protecting ENVs on the app side?
6+
7+
<div align="center">
8+
<img style="margin-right: 55px;" src="../media/flowchart.jpg">
9+
</div>
10+
11+
We don't keep original secure keys anywhere like in Java, Objective-C, or javascript, we convert secure keys into multiple hashes using a dynamic [Ciper](https://en.wikipedia.org/wiki/Cipher) and keep these multiple hashes and [Ciper](https://en.wikipedia.org/wiki/Cipher) into C++ so during build it goes into assembly language not a Smali file, in assembly language it is very hard to extract multiple hashes, combine it and [Ciper](https://en.wikipedia.org/wiki/Cipher) and decrypt hashing using [Ciper](https://en.wikipedia.org/wiki/Cipher)
12+
13+
we are using dynamic [Ciper](https://en.wikipedia.org/wiki/Cipher) for encoding secure keys, which means we convert secure keys into hash by using [Ciper](https://en.wikipedia.org/wiki/Cipher) (you can say dynamic password) after getting hash we are splitting this hash into 3 parts (3 substrings or 3 chunks of hash) and save these 3 chunks of string in C++ different variables, for decoding we have to integrate 3 Chunks of hash strings generated from Ciper + have to open the lock using [Ciper](https://en.wikipedia.org/wiki/Cipher) for decoding original secure keys, we also save half of the hash on Java and Objective-C, whenever user call `secureFor` method, On java or Objective-C send this half key to C++ method which combine 3 chunks of hash string, divide into half of the hash and then match this the half key with being sent from java or Objective-C side if it matches then we decrypt the key from the hash and return the key from assembly(compiled c++)
14+
**Note: Secure key comes into existence on runtime**
15+
16+
> It’s important to understand that no system is completely secure from attacks, even every wifi device or laptop password is also hackable, I made this for making a good security measurement for preventing 3rd party API key abuse, Good security measure is better than nothing to do
17+
> Before using this package our 3rd party API key had a 99% hackable probability but after using this package hack probability will be 0.5%
18+
19+
as far as I know, we can abuse all types of 3rd parties unless that 3rd party uses
20+
21+
- DeviceCheck or App Attest for IOS
22+
- Play Integrity or SafetyNet for Android
23+
- or in one package firebase-appcheck supported both platform

media/flowchart.jpg

84.1 KB
Loading

0 commit comments

Comments
 (0)