2017-03-24 1 views
1

android studio를 사용하여 Wi-Fi 네트워크 (대학용 프로젝트)의 모든 패킷을 감지하는 앱을 만들고 있습니다. 앱은 먼저 bcmon을 활성화하여 장치에서 모니터 모드를 활성화 한 다음 airodump를 실행해야합니다. 패킷을 스니핑하고 airodump를 중지하고 bcmon을 비활성화하면 모니터 모드가 비활성화됩니다. 앱은 패킷을 목록에 표시합니다.다른 앱에서 BCMON 사용 가능

하나는 초록색이고 다른 하나는 빨간색입니다. 녹색 버튼을 누르면 bcmon을 활성화하고 airodumb을 실행하고 빨간색은 airodump를 중지하고 bcmon을 비활성화해야합니다.

문제는 녹색 버튼을 누르면 bcmon이 활성화되어 있지만 Wi-Fi가 꺼지지 않는 것입니다. 빨간색 버튼을 누르면 몇 초 동안 Wi-Fi가 꺼지고 airodump가 중지되고 bcmon이 비활성화 된 다음 wifi가 다시 켜집니다. 어떤 잘못입니다.

이 코드의 내 라인은 백그라운드 스레드에서 bcmon 수 있도록하는 것입니다 :

Shell.SU.run(new String("/data/data/com.nadya.sniffingwifi/tools/enable_bcmon")); 

을 그리고 이것은이 mainActivity에서 호출하는 방법입니다

new backgroundThread().setContext(v1.getContext()).execute(new String[]{"enable_bcmon"}); 
Toast.makeText(v1.getContext(), "Monitor Mode Enabled", Toast.LENGTH_SHORT).show(); 

이 사람이 왜 이런 일을 알고 있나요?

답변

0

이 경로와 같은 셸 스크립트를 사용하려고 했습니까?

#! /system/bin/sh 
export LD_LIBRARY_PATH=/data/data/com.bcmon.bcmon/files/libs 
export LD_PRELOAD=/data/data/com.bcmon.bcmon/files/libs/libfake_driver.so 
/data/data/com.bcmon.bcmon/files/tools/enable_bcmon 
+0

예. 고맙습니다 :) – Nad