6. august 2017

How to make rainbow text in Unity games

A guy in FB kept trying to ask me how to make colored text or colored FONTS.TTF blah blah in Unity game like Philly made in Racing games. TTF file can't have colors in it, It just a font file. Isn't he an idiot?
I decided to research but i couldn't find anything useful. Coding that way is too complicated I guess... I came with an idea that I could make rainbow text using <color> tag like I did in BB code in forums, and i just found a HTML rainbow text generator tool that can be used.

Ok let's get started.

I'm no coding expert so i'll teach you the lazy method to make colored text look like rainbow in Unity editor.


Install Unity and create a new project. I won't explain how to do that. There are lot of tutorials how to use Unity.

Create a new script from the Create menu at the top left of the Project panel or by selecting Assets > Create > C# Script from the main menu

Visit http://rainbow.arch.scriptmania.com/tools/rainbow_text/ and create your own rainbow text. Look at Output HTML Code, this is what we need

<HTML><FONT COLOR="#FF0000">t</FONT><FONT COLOR="#FF4600">h</FONT><FONT COLOR="#FF8C00">i</FONT><FONT COLOR="#FFD200">s</FONT><FONT COLOR="#FFff00"> </FONT><FONT COLOR="#B9ff00">i</FONT><FONT COLOR="#73ff00">s</FONT><FONT COLOR="#2Dff00"> </FONT><FONT COLOR="#00ff00">a</FONT><FONT COLOR="#00ff46"> </FONT><FONT COLOR="#00ff8C">r</FONT><FONT COLOR="#00ffD2">a</FONT><FONT COLOR="#00ffff">i</FONT><FONT COLOR="#00D2ff">n</FONT><FONT COLOR="#008Cff">b</FONT><FONT COLOR="#0046ff">o</FONT><FONT COLOR="#0000ff">w</FONT><FONT COLOR="#2D00ff"> </FONT><FONT COLOR="#7300ff">t</FONT><FONT COLOR="#B900ff">e</FONT><FONT COLOR="#FF00ff">x</FONT><FONT COLOR="#FF00D2">t</FONT></HTML>

but WAIT! This code won't work in Unity. We need to edit the code for Unity support. Open Notepad++ or other programs and edit the code.

I'll use Notepad++. Click Search -> Find in Files. Click Replace tab.

Replace all </FONT> with </color>
Replace all FONT(space) with nothing.
Replace " with nothing
Remove <HTML></HTML>


Now we have a good working code for Unity

<COLOR=#FF0000>t</color><COLOR=#FF4600>h</color><COLOR=#FF8C00>i</color><COLOR=#FFD200>s</color><COLOR=#FFff00> </color><COLOR=#B9ff00>i</color><COLOR=#73ff00>s</color><COLOR=#2Dff00> </color><COLOR=#00ff00>a</color><COLOR=#00ff46> </color><COLOR=#00ff8C>r</color><COLOR=#00ffD2>a</color><COLOR=#00ffff>i</color><COLOR=#00D2ff>n</color><COLOR=#008Cff>b</color><COLOR=#0046ff>o</color><COLOR=#0000ff>w</color><COLOR=#2D00ff> </color><COLOR=#7300ff>t</color><COLOR=#B900ff>e</color><COLOR=#FF00ff>x</color><COLOR=#FF00D2>t</color>


In Unity editor, open the script you just created. If you have Visual Studio installed, it will launch Visual Studio instead.

Remove the following code

// Use this for initialization
void Start () {
                        
}
           
// Update is called once per frame
void Update () {
                        
}

Add the following pre-coded GUI I made. It is for testing text

void OnGUI()
{
    GUI.Box(new Rect(10, 10, 500, 90), ""); 
    GUI.Label(new Rect(25, 25, 1000, 500), "");
}


Add your rainbow text code under "". The final code will look like

void OnGUI()
{
    GUI.Box(new Rect(10, 10, 500, 90), ""); 
    GUI.Label(new Rect(25, 25, 1000, 500), "<COLOR=#FF0000>t</color><COLOR=#FF4600>h</color><COLOR=#FF8C00>i</color><COLOR=#FFD200>s</color><COLOR=#FFff00> </color><COLOR=#B9ff00>i</color><COLOR=#73ff00>s</color><COLOR=#2Dff00> </color><COLOR=#00ff00>a</color><COLOR=#00ff46> </color><COLOR=#00ff8C>r</color><COLOR=#00ffD2>a</color><COLOR=#00ffff>i</color><COLOR=#00D2ff>n</color><COLOR=#008Cff>b</color><COLOR=#0046ff>o</color><COLOR=#0000ff>w</color><COLOR=#2D00ff> </color><COLOR=#7300ff>t</color><COLOR=#B900ff>e</color><COLOR=#FF00ff>x</color><COLOR=#FF00D2>t</color>
");
}

Save it

To view your GUI, make sure you drag and drop your script on Main Camera.


After that, press the blue Play button to start.
Congrats, you just make your first rainbow text in Unity, lol.



You can make rainbow text in Unity games but I have no idea how. Must be very skilled programmer.

9. juli 2017

Android - Set Selinux to premissive on boot without init.d (root)

You can set Selinux to premissive on boot without init.d and without an app. You just need to follow these steps. Thanks @Zwulf on XDA.

I'm unsure if this works on other Superusers. I only tested it on rooted device with SuperSU.

Download Terminal app if you don't have a PC, or use ADB if you have a PC

On PC, connect your device, open CMD/Powershell (Windows) or Terminal (Linux) and type:
adb shell
Wait for adb connect and it will log you in as root
Then type the following commands:
su
mount -o remount,rw /system
mkdir /system/su.d
echo "#!/system/bin/sh" > /system/su.d/permissive.sh
echo "setenforce 0" > /system/su.d/permissive.sh
echo "0" > /sys/fs/selinux/enforce
chmod 755 /system/su.d/permissive.sh

Type:
reboot
To reboot your device very quickly or simply press power button and select reboot/shutdown if you want to reboot safety.

Type:
getenforce
To check selinux status. It should say premissive


That's all and enjoy using your favorite root apps :)

18. juni 2017

How to fix "error: only position independent executables (PIE) are supported."?

Some users still using old gdb and are getting an error "error: only position independent executables (PIE) are supported." when executing gdb on Lollipop and above. It only work on Android 4.2.2-4.4.4, ARM based devices only

To fix it, you must modify linker file and risk it replacing it in your rooted device. Make a full backup or make a Nandroid backup from recovery first.

If you do not like taking risks, please use Termux instead, it works on Lollipop, Marshmallow and above.

If you have x86 device, please use GameGuardian


7. juni 2017

Q&A: Why I can't decrypt files?

I have been asked by some modders why they couldn't decrypt .dll file or attach the process.

Wonder Tactics is Secneo-protected. It have anti-tamper, anti-debugging, etc and that protection is actually playing hide and seek with us which make us harder to get decrypted file. I can't get decrypted .dex because game crash instantly when I attach the process. They also make hacking tool bugs to prevent us from decompiling the APK file, like create long file names "rwerwer3r203235r23r32523cv5235c3215c1xccn4b74b73v....."above 255 bytes to create 255 bytes character limit error on Operating systems
We don't have much freedom gameplay in their protected game anymore :( We uninstall the game if the game is getting harder, harder and boring.


To remove protection, you must get decrypted .dex file but that is also ard to get it due to protections. If you are good at C++ coding, read more at https://www.alphagamers.net/threads/dump-dex-files.278417/


I don't have C++ coding skills unfortunately and I'm not looking into this for now on

3. juni 2017

.ba6 File Extension - What is a .ba6 file?


What is a .ba6 file?
A WAV audio file. These .ba6 files are from old flash-based games on Android/iOS. They are uncompressed

Software that will open?
- Windows Media Player
- VLC
- AVS Audio Converter
etc...

Can i rename .ba6 to .wav?
Yes, you can, but you may need an audio converter to play that file on any devices.

.ba6 files spotted in GT Racing 1 data files /sdcard/games/GloftGTFM

2. juni 2017

Android - How to disable "No location access" popup (Root needed)

Google recently pushed an update of Google Play Services with this annoying popup says "no location access" when you reboot your device or turn off location. This is super annoying when it popups on boot. I don't know what's going on with Google designer, seems they are working with annoying features on Android devices and plans to remove random features for no reason without any notice. You are been warned!

Note

You can disable that annoying thing but you need a rooted device and an app named DisableService. It can be downloaded from Play Store.

Launch DisableService app, tap on System, select Google Play Services

 

Click on full/short to show full service names, and uncheck com.google.android.location.util.PreferenceService. This disables the popup. It does NOT break the app but it may happen if you do something wrong. Reboot your device and enjoy using your device without annoying popup by Google



Thanks Akmal_hyperion in XDA for this trick!

12. maj 2017

Dumping files from custom OBB using BMS script

I found a script to dump custom obb made by EA. It's not a zip version of obb like the others, but it's self made compression obb, maybe FMOBB-02....

Note: This script may slow down and freeze your computer

Download QuickBMS and extract it: http://aluigi.altervista.org/quickbms.htm


Copy the script, and create a .txt file

Launch quickbms.exe, a dialog box will appear. Select the .txt BMS script file

A dialogbox will open again, select obb file

And the last one, select the output folder you want to. It will take some time to dump files

That's all. I don't know if it's possible to compress it back. Hope someone who are binary expert will find out. In this game, i found some mp3, png... but there are lot of .dat files. I don't know what are these .dat files. I deleted all files after that because it froze my entire computer while explorer.exe not responding.  You can see more info about viewing car models, maps and etc. for NL and other games if you're interested



NFS NL map. Source xentax.com
Image result for nfs nl maps

2. maj 2017

Bypass signature check in Assembly-Csharp.dll


Well that's pretty easy, just search IsGenuine, GetSignature or InstalledFromRightLocation and return it to TRUE. They are all boolean.

Use dnSpy, it's much easier to edit code. Right click inside method code, select "Edit Method (C#)..." and replace it with "return true;"


Tip: Dump source code from dll and search keywords in files using Notepad++ and analize them. It's much easier for me because i can search string, url string, excat code etc.

Keywords to search: Integrity, Check, Genuine, Signature, Installed, Location etc.

How i found IsGenuine?
First, i was analizing ShowInvalidBuildError() but i was unable to locate the check, so i just just dump the entire source code and search "signature" in files using Notepad++ because it's much easier for me to find the useful code. My former friend told me that trick.

How i found InstalledFromRightLocation?
I recorded a logcat using Matlog app to find an error, and i already found interesting function ReceiveInstallFromWrongLocationError()
[​IMG]
so i took a look in dnSpy. I analized it , look InitOnStart() and there is a code
bool flag2 = AndroidUnityUtilWrapper.InstalledFromRightLocation();

InstalledFromRightLocation() is also an interesting method. It was a boolead so I returned it true and it worked!

Credits:
iAndroHacker


14. april 2017

How to fully reset Fiddler Web Debugger Tool

If you have any problems with Fiddler and you can't figure it out what's going on, follow this guide to fully reset Fiddler. Press SHIFT and launch Fiddler does not really help.

Open regedit.exe, navigate to " HKEY_CURRENT_USER\Software\Microsoft\". right click on Fiddler2 folder, and delete it.

 

Open My documents and delete Fiddler2 folder

 

Launch Fiddler. Open Options -> HTTPS, click on Actions -> Reset All Certificates. It will ask you to reset, and add certificate. Click OK or Yes when asked.



That's all. Fiddler should work correctly again as it should :)

13. april 2017

APK Easy Tool v1.37 for Windows (GUI tool, user friendly)



This tool is signed so the crappy 360 anti-virus should not detect it as a false positive malware

Requirements:
Windows vista or newer (This tool will not work for Windows XP)
.NET Framework 4.5.2 or newer
Java SE/JDK is required for decompile, compile, and sign APK. If you don't have Java installed, you can only use Zipalign or Install APK. Download and install Java SE/JDK now

Features:
Apktool.jar version selections
Decompile APK
Compile APK
Sign APK after compile
Sign seletected APK (It will clone the selected APK, and sign it)
Sign compiled APK (If you forgot to sign your compiled APK, you can sign it)
SignAPK (signapk.jar v1.0)
Remember path when closed (config will reset if EXE file was moved to somewere else)
Framework installer (uses apktool.jar's commands)
Logs tab
Drag and drop file support
Full options of decompile and compile
Cancel button in waiting dialog box
Clear logs when exit
Allow path changes in textbox
Java heap option. Default 512m
ZipAlign
Options to rename the apk file
Options to select apktool version.
Tooltips
Enable/Disable check for updates
Enable/Disable tips and ToolTips
and more...

How to use:
1. Download the EXE file, place it somewhere, and open it (If you open it, the resources required for this tool, will be extracted to your personal documents)
2. Set the decompile and compile directory
3. Select the APK file you want to work with
4. Decompile the APK file, and do some work
5. Re-compile APK and Sign, or whatever, when you are done.


You do not need to select APK and set the directory if you do drag and drop actions.

Framework are for ROM developers and System App modder only

It works the same way as you did in the command lines :)

Download:
Link #1

Link #2

Credits:
iAndroHacker (Creator of this tool)
ibotpeaches (Creator of apktool.jar)
Android SignAPK (Creator of signapk.jar)


Changelogs:
1.37 (13 april 2017)
Fixed sign APK after compile
- Support signing flashable ZIP for ROM developers. You can drag and drop ZIP file on Sign APK button to sign a ZIP file
Some minor fixes

More changelogs:


4. april 2017

How to dump and mod il2cpp games (Metadata v21-23) (2017)

<iframe width="560" height="315" src="https://www.youtube.com/embed/BN5UCGP_5os" frameborder="0" allowfullscreen></iframe>
Video tutorial by TechX Original

Most peoples asked me to make a new tutorial so I did! I know it's very late but I had not enough time to make the tutorial.

il2cpp dumper helps you to find the right function + offset to mod.

This guide is for IDA modding experience only!

Requirements:
- IDA Pro. Download link
- Notepad++. Download link
- Any Hex Editor software. I'm using Hex Workshop. Download link. (You can modify hex in IDA but editing the file in hex editor is the fastest way for me)
- Online ARM converter. Link to the website
- Basic C# and ARM knowledge. You don't really need to learn C# but know simple codes of C#
- Know how to use IDA Pro
- Perfare or Katy's dumper. Links below

Extract required files from APK file:
Open the APK and extract the following files to dump:
\lib\armeabi-v7a\libil2cpp.so
\assets\bin\Data\Managed\global-metadata.dat

Using Perfare's Il2CppDumper:

Launch Il2CppDumper.exe, the program want you to select the ELF file or Mach-O file. Select libil2cpp.so file. The dialog box should appear again. Select global-metadata.dat file.

The program asks you to select mode. Manual (1) or auto (2)

Auto mode:
Automatically find the required offsets to dump il2cpp.
Press 2 and the file dump.cs will be created

Skip reading manual mode if you don't want to use manual mode.

Manual mode:
The manual mode is the complicated steps to dump il2cpp. Auto mode does tell you the offsets, but I would like to show you how to find offsets to manually dump il2cpp.

Disassemble libil2cpp.so in IDA Pro. Click on Search -> Sequence of bytes...

Search this hex
1C 00 9F E5 20 10 9F E5 00 20 8F E0
Click OK


IDA should jump to this function


But there's no unk offsets, right? now try this trick:
Right click on loc_xxxxxxx and select Create Function, you will get the unk offsets


In the console app, press 1, it will ask you to input the CodeRegistration(R0). Input the unk offset of R0, R12, R2. Example: 15C70C4. Hit enter. Input MetadataRegistration(R1), and Hit enter.

The dump.cs file will be created

Using Katy's Il2CppInspector:

Skip this if you are using Perfare's Il2CppDumper

Extract the ZIP file. The il2cppdumper.exe can't run with just double-click, so you have to use CMD, "cd" to the path of Il2CppInspector or click File -> Open commandprompt, and type this command.

Usage:
Il2CppDumper [<binary-file> [<metadata-file> [<output-file>]]]

What does these usage mean?


Il2CppDumper = Execute Il2CppDumper.exe file
<binary-file> = Path of libil2cpp.so
<metadata-file> = Path of global-metadata.dat
<output-file> = Output file. You can name the file. Example: dumpedfile.cs

This is my example:
il2cppdumper "D:\Android apps + data\Craft Royale\libil2cpp.so" "D:\Android apps + data\Craft Royale\global-metadata.dat" "D:\Android apps + data\Craft Royale\dumped.cs"

Hit enter and it will dump il2cpp for you. The dumped file will be created at the path you have given

If you want to use command anywhere, add the PATH environment variable in Advanced System Properties


View the dumped file with Notepad++:
Right click on the dumped file and select Edit with Notepad++
You'll see a C# code. It's not a full code but the code tells you function names and offsets to mod.
To search, click Search -> Find...
To find all keyword, click on Find All in Current Document


If you never seen C# code before, I'll explain a bit what this method mean

public static int get_IsCheater(); // e8e9cc

public is an access modifier. It can be private, protected etc.This is not important to know

static is a static modified to declare a static member. This is not important to know

int is a data type. It can be float, double, boolean etc....

// e8e9cc is a comment. This tells you the real offset (sub_xxxxxx) to mod. You can search it in functions window in IDA

Fields and Properties are not modable, so don't look at them. Only look at fuctions under // Methods

Modding il2cpp game is the same as modding other .so file.

That's all.


Happy modding!

Credits:
iAndroHacker (this tutorial)


29. marts 2017

How to decrypt an encrypted .dll and other files using Termux app (Root only, 5.0 and up, ARM & x86)

I have found a new way to decrypt .dll and other files using Termux. In this tutorial, I'll show you how to decrypt an encrypted .dll file

Requirements:
- Rooted device or Emulator. ARM or x86.
- A powerful Android device: 1 GB RAM, 4 cores, 1.5 - 2.x GHz. If you have a low-end device, your device may freeze during dumping.
- Available free space of Internal storage or Sdcard: 2 GB
- Requires Android 5.0 and up. Works on Marshmallow 6.0.1. Termux will not work on 4.4.4 and below.
- Termux app. It is avaliable on Play Store
- Modified Winhex for Windows (free version will not work for this purpose).

Notes:
There is no need PIE patching. gdb 7.12 natively support Android 5.0 and up

If your device is running Kitkat 4.4.4 and below, please read my old tutorial: http://www.iandrohacker.net/2015/11/tutorial-how-to-decrypt-encrypted-dll.html

Does it work on Emulator?
Yes, Termux and GDB are working, but it does not support dumping a memory, return an error "Target does not support core file generation"


[​IMG]

Finding the package name of the app:
Find the package name of the app you're going to hack!

This will be required to find the app in the Terminal app we're going to use soon.
It's usually called "com.DEVELOPER_CODE.GAME_CODE".
You can find it going (with your browser) to the Google Play website, looking for the game you have installed on your device and then copying what's next to "id=".
See screenshot:


Alternatively, you can Install Package Name Viewer 2.0 from play store and you'll find the package name of any app you have installed on your device.


If your device is running Cyanogenmod/Lineage OS, you can go to Settings -> Apps and then you'll find the package name of any app you have installed on your device.

[​IMG]

Termux setup and decryption:
Open Termux. It should be very similar to the following one:


Type the following commands:

Tip: apt-get or apt doesn't matter. apt-get's most commonly used commands are available in apt


apt update
Update package infomation
apt-get update downloads the package lists from the repositories and "updates" them to get information on the newest versions of packages and their dependencies.

apt install gdb tsu
Install both gdb and tsu

gdb is a process debugger

tsu is a root mode for Termux.

Press the home button and launch the game. Let the game fully load.

Open multitask, and go back to Termux

Type the following commands:

su
Superuser mode
And grant root access to enter superuser mode for your device.

dumpsys meminfo | grep com*

Show process list
This command will search for all the running processes starting with "com." (the * is a jolly symbol which means any letter/number/symbol). The package name of the game is always at top. Don't forget to note it

 

exit
Exit Superuser mode

tsu
Root mode for Termux

gdb -pid <pid>

attach a process with gdb

Example:
gdb -pid 12345

Hit return to continue when asked.

Do not worry about any warnings like these you may read in the Terminal app:


gcore <path>
save core file

Example:
gcore /sdcard/thegametodump

Type Y when asked

This will take 3-5 minutes. You device may freeze during dumping. Do not touch your device.

quit

quit gdb
And deattach the process when asked
Or you can exit Termux session from notification


Connect your device to your computer and copy your dumped file, if the file does not appear, just create a folder and move the file. This way Windows should be able to see it

Recover decrypted files using WinHex
Open Winhex.exe
File -> Open... and select a dumped file
Tools -> Disk Tools -> File Recovery by Type


Click the "+" next to "Programs" (1) and check "Windows exec." (2). Now, select the folder where you want the new file to be generated under "Output Folder" (3).
Ensure "Complere byte-level search" is checked (4) and then click "OK" (5).

                                                                                                                                                          
The file recover will now begin and, when it finished you'll get a message like this:


Now, reach the location where you saved this file and delete all files with the ".com" extension. They're not needed and may only cause confusion.

You can finally close WinHex.

Happy modding!

Credits:
iAndroHacker
x-ways devs (Winhex program)

Fredrik (Termux app)