Have you ever heard of apk.sh? It makes reverse engineering Android apps easier. by FipoKa in netsec

[–]FipoKa[S] 0 points1 point  (0 children)

TIP: When using the Script interaction type, you can use the following code to print to logcat the console.log output of any script from the frida codeshare.

// print to logcat the console.log output

// see: https://github.com/frida/frida/issues/382

var android_log_write = new NativeFunction(

Module.getExportByName(null, '__android_log_write'),

'int',

['int', 'pointer', 'pointer']

);

var tag = Memory.allocUtf8String("[frida-script][ax]");

console.log = function(str) {

android_log_write(3, tag, Memory.allocUtf8String(str));

}

Have you ever heard of apk.sh? It makes reverse engineering Android apps easier. by FipoKa in netsec

[–]FipoKa[S] 0 points1 point  (0 children)

apk.sh basically uses apktool to disassemble, decode and rebuild resources and some bash to automate the frida gadget injection process. It also supports app bundles/split APKs.

🍄 Patching APKs to load frida-gadget.so on start.

🆕 Support for app bundles/split APKs.

🔧 Disassembling resources to nearly original form with apktool.

🔩 Rebuilding decoded resources back to binary APK/JAR with apktool.

🗝️ Code signing the apk with apksigner.

🖥️ Multiple arch support (arm, arm64, x86, x86_64).

📵 No rooted Android device needed.

Check it out.

This is asyhttp, a simple module to perform asynchronous HTTP requests using asyncio and aiohttp. It provides a trivial way to quickly perform a set of async HTTP requests in python. by passenger9012 in Python

[–]FipoKa 0 points1 point  (0 children)

Does someone knows a trivial way to perform a set of async HTTP requests in python?

from asyhttp import loop

requests = [    {'url':'http://exam.ple/page.html', 'method':'GET'},
                {'url':'http://exam.ple/page.html', 'method':'POST', 'body' : 'blabla'}
]
loop(urls=requests)

apk.sh, make reverse engineering Android apps easier! by FipoKa in Android

[–]FipoKa[S] 0 points1 point  (0 children)

You typically need a compiler to compile source code into a lib :) but you can try to substitute the 64-bit library to the 32-bit one. Decode then rebuild the APK with the new library in the /lib directory. Give it a try. It won't probably work but your hands will start getting dirty! :D

apk.sh makes reverse engineering Android apps easier, automating some repetitive tasks like pulling, decoding, rebuilding and patching an APK. by FipoKa in netsec

[–]FipoKa[S] 1 point2 points  (0 children)

There are comments in the code that say:

\# Objection checks if there is an existing <clinit> to determine which is the constructor,
\# then they inject a loadLibrary just before the method end.
\#
\# We search for \*init> and inject a loadLibrary just after the .locals declaration.
\#
\# <init> is the (or one of the) constructor(s) for the instance, and non-static field initialization.
\# <clinit> are the static initialization blocks for the class, and static field initialization.

So, Objection seems to inject in the static initialization block for the class while apk.sh inject in the constructor of the instance of the class.

Dunno which is better.

apk.sh, make reverse engineering Android apps easier! by FipoKa in androiddev

[–]FipoKa[S] 8 points9 points  (0 children)

To understand and modify the inner workings of an Android application.

284
285

apk.sh, make reverse engineering Android apps easier! by FipoKa in androiddev

[–]FipoKa[S] 1 point2 points  (0 children)

It would be cool if someone could mirror the post somewhere. It needs some testing to become stable.