我正在创建一个使用android studio嗅探来自wifi网络(用于大学的项目)的所有数据包的应用。该应用程序应首先通过启用bcmon在设备中启用监视模式,然后运行airodump。嗅探数据包,停止airodump并禁用bcmon,这将禁用监视模式。然后该应用将在列表中显示数据包。
我创建了2个fab按钮,一个是绿色,另一个是红色。当我按下绿色按钮时,应启用bcmon并运行airodumb,而红色按钮应停止airodump并禁用bcmon。
问题是当我按下绿色按钮时,表明已启用bcmon等,但wifi并未关闭。当我按下红色按钮时,它将关闭wifi几秒钟,然后停止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();
有人知道为什么会这样吗?
最佳答案
您是否尝试过使用像这样的shell脚本(具有正确的路径设置)?
#! /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