- Obfuscate code helps.
- JS Bundles - https://github.com/vesselsoft/metro-minify-obfuscator
- Android -
Proguard
/R8
- iOS - I dont know any that is open-source and works. Before deprecation,
BITCODE
was used. However there is a commercial one callediXGuard
. - JS are still easier to
decompile
/deobfuscate
thannative
, so ideally, if you can, the more you implement in thenative
side, the better. That's why one of the recommendations below is to use a single point of implementation, withRust
orC++
.
Jailbreak
/rooted
/emulator
checks, close app if detected.- https://github.com/react-native-device-info/react-native-device-info#isemulator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Run on live usb | |
2. fdisk -l | |
3. mount /dev/sdx1 /mnt | |
4. mount /dev/sdx2 /boot/efi | |
5. iwd station wlan0 connect <wifi_name> <wifi_password> | |
6. arch-chroot /mnt | |
7. pacman -S linux | |
8. grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB | |
9. grub-mkconfig -o /boot/grub/grub.cfg | |
10. exit |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if (typeof String.prototype.parseFunction != 'function') { | |
String.prototype.parseFunction = function () { | |
var funcReg = /function *\(([^()]*)\)[ \n\t]*{(.*)}/gmi; | |
var match = funcReg.exec(this.replace(/\n/g, ' ')); | |
if(match) { | |
return new Function(match[1].split(','), match[2]); | |
} | |
return null; |
A commit should be a wrapper for related changes. For example, fixing two different bugs should produce two separate commits. Small commits make it easier for other developers to understand the changes and roll them back if something went wrong. With tools like the staging area and the ability to stage only parts of a file, Git makes it easy to create very granular commits.
Committing often keeps your commits small and, again, helps you commit only related changes. Moreover, it allows you to share your code more frequently with others. That way it‘s easier for everyone to integrate changes regularly and avoid having merge conflicts. Having large commits and sharing them infrequently, in contrast, makes it hard to solve conflicts.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<link rel="stylesheet" href="css/binaryCalculator.css" type="text/css"> | |
<meta charset="utf-8"> | |
<title>Binary Calculator</title> | |
</head> | |
<body> | |
<div id="res"></div> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const isPrime = function(n) { | |
if (isNaN(n) || !isFinite(n) || n % 1 || n < 2) return false; | |
if (n == leastFactor(n)) return true; | |
return false; | |
} | |
const leastFactor = function(n) { | |
if (isNaN(n) || !isFinite(n)) return NaN; | |
if (n == 0) return 0; | |
if (n % 1 || n * n < 2) return 1; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function primeFactors(n){ | |
while(n % 2 == 0){ | |
console.log(2); | |
n = n / 2 | |
}; | |
for(var i = 3; i * i <= n; i = i + 2){ | |
while(n % 2 == 0){ | |
console.log(n); | |
n = n / i; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let a = process.argv.slice(2); | |
String.prototype.strstr = function (search) { | |
var position = this.indexOf(search); | |
if (position == -1) { | |
// not found | |
return ''; | |
} | |
return this.slice(position); |