• Stars
    star
    505
  • Rank 86,750 (Top 2 %)
  • Language
    C
  • License
    GNU Lesser Genera...
  • Created almost 9 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Autonomous smartphone app. Capable of self-compilation, mutation, and viral spreading. World-first proof-of-principle to bypass Internet kill switches.

Self-compiling Android application (Experimental)

Disclaimer: only works on Android 4.3_r3.1 with Galaxy Nexus. Or Cyanogenmod 12.1 of android 5.1.1, comfirmed on Nexus 5,6 and 10 devices.

Autonomous smartphone apps: self-compilation, mutation, and viral spreading

Mutate an Android app at the source code level.

Abstract from the scientific paper: We present the first smart phone tool that is capable of self-compilation, mutation and viral spreading. Our autonomous app does not require a host computer to alter its functionality, change its appearance and lacks the normal necessity of a central app store to spread among hosts. We pioneered survival skills for mobile software in order to overcome disrupted Internet access due to natural disasters and human made interference, like Internet kill switches or censored networks. Internet kill switches have proven to be an effective tool to eradicate open Internet access and all forms of digital communication within an hour on a country-wide basis. We present the first operational tool that is capable of surviving such digital eradication.

{Part of Tribler: 82 contributing developers so far, 1.7 unique users installs to date}

Dependencies:

JAVA

platform -> android-18.jar compiler -> ecj-4.5.jar dexer -> SDK\build-tools\23.0.0\lib\dx.jar apk build -> sdklib-24.3.4.jar signer -> zipsigner-lib-1.17.jar zipsigner-lib-optional-1.17.jar zipio-lib-1.8.jar kellinwood-loggin-lib-1.1.jar sc-core-1.52.0.0.jar sc-prov-1.52.0.0.jar sc-pkix-1.52.0.0.jar sc-pg-1.52.0.0.jar

NATIVE

aapt -> Platform_Framework_Base\tools\aapt aidl -> Platform_Framework_Base\tools\aidl androidfw -> Platform_Framework_Base\include\androidfw

zipalign -> Platform_Build\tools\zipalign host -> Platform_Build\lib\host

libpng -> Platform_External_Libpng expat -> Platform_External_Expat zlib -> Platform_External_Zlib

libcutils -> Platform_System_Core\libcutils cutils -> Platform_System_Core\include\cutils

liblog -> Platform_System_Core\liblog log -> Platform_System_Core\include\log

libutils -> Platform_System_Core\libutils utils -> Platform_System_Core\include\utils

log.h -> Platform_System_Core\include\android

asset_manager.h -> Platform_Framework_Native\include\android looper.h -> Platform_Framework_Native\include\android

zopfli -> zopfli\src

ld -> Tool_Chain_Utils\binutils-2.25\ld

STABLE APIs (at least api level 9)

https://developer.android.com/ndk/guides/stable_apis.html#a18

LOCAL_LDLIBS := -llog (liblog)

LOCAL_LDLIBS := -lz (zlib)

LOCAL_LDLIBS += -landroid (o.a. looper.h)

LOCAL_LDLIBS := -ldl (dynamic linker)

Screenshots

Howto mutate an Android app at the source code level.

Simple proof-of-principle user interface. Both the app name and the icon are changed in real-time in the source code shipped inside the app. By selecting "install" an .apk is created of itself using self-compilation. screenshot_2015-09-18-16-47-38

Changing icon and app name: screenshot_2015-09-18-16-48-30

First self compile step, process resources screenshot_2015-09-18-16-48-49

Compile source:
screenshot_2015-09-18-16-49-29

Integrate dependencies:
screenshot_2015-09-18-16-49-34

(this takes a while)
screenshot_2015-09-18-16-50-09

Package app:
screenshot_2015-09-18-16-55-49

Prepare installation step:
screenshot_2015-09-18-17-12-52

The magic happens. Without any user intervention it asks for a freshly compiled clone of itself to be installed.: screenshot_2015-09-18-17-13-11

User selected "install"
screenshot_2015-09-18-17-13-20

Install completed
screenshot_2015-09-18-17-17-40

Finally open the self-compiled clone of itself. screenshot_2015-09-18-17-17-55

More Repositories

1

tribler

Privacy enhanced BitTorrent client with P2P content discovery
Python
4,727
star
2

py-ipv8

Python implementation of Tribler's IPv8 p2p-networking layer
Python
226
star
3

dispersy

The elastic database system. A database designed for P2P-like scenarios, where potentially millions of computers send database updates around.
Python
84
star
4

software-based-PUF

The first open source software-based Physically Unclonable Function (PUF) using off-the-shelf SRAM
C
83
star
5

trustchain-superapp

Kotlin implementation of Trustchain and IPv8 with rich networking: multihoming of local Bluetooth+4G, decentral social networking, UDP hole punching, etc.
Kotlin
80
star
6

kotlin-ipv8

P2P communication library for Android
Kotlin
58
star
7

app-to-app-communicator

Create an attack-resilient network out of smartphones, no-PC-needed (proof of concept)
Java
33
star
8

Dollynator

Autonomous self-replicating code
Python
22
star
9

trustchain-simulator

This repository contains Trustchain (Blockchain) simulations built with OMNeT++
C++
19
star
10

cloudomate

Unpermissioned Open Computer API
Python
15
star
11

gumby

Experiment runner framework for IPv8 and Tribler
Python
11
star
12

decentral-market

Fully operational proof-of-principle of a electronic market place that is immune to shutdown by governments, immune to lawyer-based attacks or other real-world threats. A marketplace with no central server bottleneck, no central point of trust, full self-organization and unbounded scalability.
Python
10
star
13

De-DSI

Jupyter Notebook
10
star
14

tribler-android

Java
9
star
15

bami

BAMI 🍜 protocol prototype: Ultimate Toolbox for Collaboration
Python
9
star
16

utp4j

Micro Transport Protocoll 4 Java
Java
9
star
17

anydex-core

The Universal Decentralized Exchange
Python
8
star
18

tribler.github.com

The Tribler.org website
HTML
6
star
19

distributed-ai-kernel

Distributed AI Kernel
Java
4
star
20

incremental-pagerank

An implementation of the Incremental PageRank algorithm
Jupyter Notebook
4
star
21

docker-tribler-prod

Docker image for running Tribler in production.
Dockerfile
4
star
22

decentralized-mortgage-market

Python
2
star
23

real_time_random_walk

Real time visualization of trust levels determined by random walk
Python
2
star
24

document-attestation-service

TypeScript
2
star
25

covid-19-recovery-identification

TypeScript
2
star
26

docker-tribler-dev

Docker image for a local development environment for Tribler.
Dockerfile
2
star
27

trustchain-explorer

A TrustChain explorer, written in AngularJS
TypeScript
1
star
28

trustchain_etl

Database migration tools for Trustchain records
Python
1
star
29

trustchain-simulator-pysim

A basic simulator for TrustChain, to explore the effect of different parameters on fraud detection times and bandwidth overhead.
Python
1
star
30

docker-tribler-build-linux

Docker image for building deb files for Tribler.
Shell
1
star