CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: miseusegau con ben 25 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: AI0LIA con ben 159 Thanks ricevuti negli ultimi sette giorni
Utente del mese: Bokonon con ben 394 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 8 su 8
Discussione:

Compilare Aircrack-ng-1.1 per Toshiba AC100

  1. #1
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    Compilare Aircrack-ng-1.1 per Toshiba AC100

    Posto un thread che ho iniziato su xda-developers ma che non ha avuto molto successo. Spero che qualcuno qui su Androidiani sia più interessato ...

    Hello,
    I'm trying to cross-compile aircrack-ng 1.1 for a Toshiba AC100 in Ubuntu 12.04 x86_64 .

    Android version:
    4.1.2

    CyanogenMod Version:
    10-20121202-UNOFFICIAL-ac100

    Kernel Version:
    3.1.10+
    zombah@gilgamesh #1
    Sun Dec 2 15:23:02 MSK 2012

    GCC version:
    arm-linux-androideabi-gcc (GCC) 4.6 20120106 (prerelease)
    Copyright (C) 2011 Free Software Foundation, Inc.

    OPENSSL


    I cross-compiled openssl 1.0.1c using the arm compiler found in ndk-r8d. The compiling process went smooth using this sources:
    openssl.org/source/openssl-1.0.1c.tar.gz

    The commands I typed to compile openssl were:
    codice:
    export TOOL_PREFIX=~/android/android-ndk-r8d/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86/bin/arm-linux-androideabi-
    export SYSROOT=~/android/android-ndk-r8d/platforms/android-14/arch-arm
    export CC="$TOOL_PREFIX-gcc -march=armv7-a -mfloat-abi=softfp --sysroot=$SYSROOT"
    ./Configure android-armv7 shared no-asm
    make
    AIRCRACK-NG

    Then I compiled aircrack-ng-1.1 from sources (the previous exports need to be recast):

    I also changed the aircrack-ng-1.1/src/Makefile to suite my needs:
    line 7 replaced with
    CFLAGS += -Iinclude -I~/android/openssl-1.0.1c/include
    line 99 replaced with
    LIBSSL = -L~/android/openssl-1.0.1c -l:libssl.so -l:libcrypto.so $(LDFLAGS)
    "-lpthread" replaced with "-lc" allover the Makefile

    in file common.mak
    line 70 replaced with
    CFLAGS ?= -g -W -Wall -O3
    line 59-61 replaced with
    else
    ifndef CC
    CC = $(TOOL_PREFIX)gcc
    endif
    endif
    <termios.h> substituted to <sys/termios.h> in ./src/aircrack-ng.c, ./src/airodump-ng.c and ./src/wesside-ng.c

    I moved the bins and libraries to the Toshiba using adb and set right permissions:

    codice:
    make sqlite=false
    make install
    I've checked aircrack-ng with a test .cap file and it does work.

    To use airmon-ng I installed busybox and compiled iwpriv and iw since they are needed.
    I tested it with busybox 5.2 and it does work. (airmon-ng script first line must be replaced with "#!/system/bin/sh")

    airodump-ng starts correctly in the emulator but, when I try to run it onto the Toshiba AC100, it fails:
    codice:
    $ airodump-ng
    Illegal instruction


    Through DDMS I retrieved this log:
    codice:
    01-16 00:01:50.129: A/libc(1419): Fatal signal 4 (SIGILL) at 0x00013938 (code=1), thread 1419 (airodump-ng)
    01-16 00:01:50.230: I/DEBUG(109): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    01-16 00:01:50.230: I/DEBUG(109): Build fingerprint: 'motorola/tervigon/wingray:4.0.4/IMM76/292727:user/release-keys'
    01-16 00:01:50.230: I/DEBUG(109): pid: 1419, tid: 1419, name: airodump-ng  >>> airodump-ng <<<
    01-16 00:01:50.230: I/DEBUG(109): signal 4 (SIGILL), code 1 (ILL_ILLOPC), fault addr 00013938
    What can I try now? I' not able to figure out which operation is the illegal one ...
    Ultima modifica di LastStarDust; 19-01-13 a 13:30

  2.  
  3. #2
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    Mi arrendo ... speravo Android fosse più linux-friendly. Invece bisogna conoscere linux alla perfezione e sapere anche in cosa si differenzia Android da Linux ... ed entrambe le cose non sono alla mia portata. Se qualcuno fosse intenzionato a continuare questo "progetto" qui può trovare una descrizione accurata di tutto quello che ho fatto finora. Dato che alcune cose le avevo già postate in forum di lingua inglese passerò da italiano ad inglese senza preavviso.

    Nel post precedente ho descritto come ho compilato openssl e aircrack:
    Ora descriverò come ho compilato iw e le utility contenute nel pacchetto chiamato in Ubuntu wireless-tools.

    IW e LIBNL
    L'utility iw ha bisogno delle librerie libnl per funzionare. Ho quindi dovuto compilare prima queste e poi inserirle nella cartella di sistema /system/lib di Android.

    For libnl I just used the code written by dschuermann:

    codice:
    git clone git://github.com/dschuermann/libnl-3-android.git
    cd libnl-3-android
    ./autogen.sh
    ./configure --disable-pthreads --host=arm --build=x86_64
    cd android_toolchain
    ~/android/android-ndk-r8d/ndk-build
    Then downloaded iw and compiled:

    codice:
    git clone git.sipsolutions.net/iw.git
    cd iw
    make
    In the Makefile
    lines 12-15 are replaced with
    CC = arm-linux-androideabi-gcc
    CFLAGS ?= --sysroot=~/android/android-ndk-r8d/platforms/android-14/arch-arm -O2 -g
    CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration
    CFLAGS += -I~/android/libnl-3-android/include -I~/android/libnl-3-android/android_toolchain/jni/missing_include -march=armv7-a -mfloat-abi=softfp
    lines 28-79 replaced with
    # libnl version is 3.2.14
    CFLAGS += -DCONFIG_LIBNL30
    LIBS += -L~/android/libnl-3-android/android_toolchain/libs/armeabi-v7a -lnl-3 -lnl-genl-3
    line 104 replaced with
    $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(OBJS-y) $(LIBS) -o iw
    where I assumed that libnl version is 3.2.14 and libraries are located in the libnl-3-android/android_toolchain/libs/armeabi-v7a folder

    WIRELESS-TOOLS


    I downloaded the sources from code.google.com/p/android-wifi-tether/source/browse/tools/wireless-tools/?r=509

    in Makefile I changed following lines:
    line 8
    PREFIX := /tmp
    line 12-13
    CROSS_COMPILE := arm-linux-androideabi-
    KERNEL_ROOT := /home/neo/android/android-ndk-r8d/platforms/android-14/arch-arm
    KERNEL_DIR := /home/neo/android/android-ndk-r8d/platforms/android-14/arch-arm
    I commented line 17
    I added manually file wireless.21.h taken here
    In file ifrename.c replace line 72 with the whole content of file getdelim.c (don't know why error can be bypassed this way)
    Then launch make (remember to set CC variable as in openssl)
    Ultima modifica di LastStarDust; 19-01-13 a 13:47

  4. #3
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    COMPAT-WIRELESS

    Ho anche cercato di installare i moduli wireless compilandoli dalla suite compat-wireless.
    Queste sono le sorgenti che ho utilizzato (le più vicine alla versione del kernel 3.1.10):
    http://wireless.kernel.org/en/users/...table_releases

    Dopo aver scaricato le sorgenti le ho estratte e patchate. Ho notato che bisogna invertire la patch 30-bridge-port.patch per evitare errori di compilazione.
    Stavolta utilizzo come sorgenti del kernel quelle di zombah e non quelle default di Android 4.1.2.
    codice:
    export SYSROOT=~/android/ac100-zombahs-marvin24s-kernel
    tar xvjf compat-wireless-3.1.1-1.tar.bz2
    cd compat-wireless-3.1.1-1
    patch -Rp1 -i ./patches/30-bridge-port.patch
    wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch
    patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch
    wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
    patch -p1 < channel-negative-one-maxim.patch
    Seleziono il driver adeguato
    codice:
    ./scripts/driver-select rt2x00
    Aggiungere nel makefile alla variabile CFLAGS:
    codice:
     	-march=armv7-a -mfloat-abi=softfp -fno-pic \
    	-include /home/neo/android/ac100-zombahs-marvin24s-kernel/include/linux/module.h \
    	-include /home/neo/android/ac100-zombahs-marvin24s-kernel/include/linux/export.h \
    Compilare:
    codice:
    make ARCH=arm CROSS_COMPILE=arm-linux-androideabi- KLIB=$SYSROOT KLIB_BUILD=$SYSROOT
    Verranno prodotti vari moduli .ko di cui a me servono solo i seguenti:
    1. compat.ko
    2. cfg80211.ko
    3. mac80211.ko
    4. rt2x00lib.ko
    5. rt2800lib.ko
    6. rt2x00usb.ko
    7. rt2800usb.ko

    che vanno inseriti nella cartella di sistema /system/lib/modules e caricati proprio in quest'ordine.
    Il problema è che ogni volta che provo a caricare cfg80211.ko ottengo l'errore in dmesg
    codice:
    cfg80211: Unknown symbol kmem_cache_alloc_trace (err 0)
    Ultima modifica di LastStarDust; 19-01-13 a 14:31

  5. #4
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    Alla fine delle varie compilazioni tutti i moduli, gli eseguibili e le librerie vanno inseriti nelle rispettive cartelle sul Toshiba.
    Questo si può fare tramite il programma adb, l'installazione del quale assumerò già eseguita.
    Rispettivamente i percorsi sono:

    librerie -> /system/lib
    moduli -> /system/lib/modules
    eseguibili -> /system/xbin


    Se volete potete utilizzare questo archivio che contiene tutti i file compilati da me secondo le esatte istruzioni precedenti ed uno script di nome adb_push_all.sh il cui compito è quello di inserire i file in android.
    Sebbene avessi fatto un backup dei moduli anche risostituendo i file originari la connessione wireless non ho apiù funzionato da interfaccia grafica. Ci è voluto un restore completo per riportare tutto come prima.

  6. #5
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    Dimenticavo...
    Prima di tutto bisogna avere le sorgenti del kernel che gira sul vostro Toshiba.
    Io le ho trovate qui: SORGENTI KERNEL
    Bisogna averle compilate con successo almeno una volta poiché (a quanto pare) alcuni file necessari ai programmi elencati sono disponibili solo in seguito ad una compilazione del kernel.
    Per compilare il kernel ho dato questi comandi:
    codice:
    make cyanogenmod_paz00_defconfig ARCH=arm
    make -k zImage INSTALL_MOD_PATH=/tmp INSTALL_MOD_STRIP=1 ARCH=arm CROSS_COMPILE=arm-linux-androideabi- CFLAGS="-march=armv7-a -mfloat-abi=softfp"
    Ho notato che vanno apportate piccole modifiche ad alcuni file per rendere il kernel compilabile.
    Ultima modifica di LastStarDust; 21-01-13 a 14:08

  7. #6
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    PS aggiungo solo cosa sono riuscito e cosa non sono riuscito ad ottenere:

    cosa SONO riuscito a fare:
    • compilare e testare le librerie LIBNL LIBSSL e LIBCRYPTO
    • compilare e testare IW e WIRELESS-TOOLS
    • avviare AIRMON-NG e creare un'interfaccia mon0 in modalità monitor.
    • compilare e testare AIRCRACK-NG


    cosa NON SONO riuscito a fare:
    • avviare AIRODUMP-NG (illegal instruction)
    • avviare AIREPLAY-NG (wireless-tools not found)
    • compilare e caricare con successo il modulo RT2800USB.KO contenuto in compat-wireless (Unknown symbol kmem_cache_alloc_trace)

  8. #7
    Androidiano
    Registrato dal
    Jul 2010
    Messaggi
    105
    Thanks
    15
    Thanked 14 Times in 9 Posts
    Predefinito

    complimenti!
    chissa' se e' possibile farlo per ubuntu.
    penso di si. tu hai provato?

    mrtuttle

  9. #8
    Androidiano
    Registrato dal
    Dec 2012
    Messaggi
    66
    Thanks
    0
    Thanked 25 Times in 22 Posts
    Predefinito

    In Ubuntu aircrack-ng fila liscio liscio. Se proprio non è nei repository basta compilarlo con il classico configure - make - make install

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •