尝试使用Android应用的Java代码在Android上运行NMAP进程时,权限被拒绝

我正在尝试创建一个应用android,以从终端运行nmap命令并在应用中显示结果

我正在尝试运行以下代码行:

try {
    Process p = Runtime.getRuntime().exec("nmap  ");           
    BufferedReader inputStream = new BufferedReader(new InputStreamReader(p.getInputStream()));

    String s;
    // reading output stream of the command  
    while ((s = inputStream.readLine()) != null) {
        Log.d("res",s);
    }
 } catch (Exception e) {
       e.printStackTrace();
 }
  

W / System.err:java.io.IOException:无法运行程序“ nmap”:   错误= 13,权限被拒绝

houyong888 回答:尝试使用Android应用的Java代码在Android上运行NMAP进程时,权限被拒绝

如果您查看错误,则会看到消息权限被拒绝。您的android应用未在根级别执行。您需要root级特权才能运行该命令。

您应该执行以下操作:

Process su = Runtime.getRuntime().exec("su");
DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());  

使用DataOutputStream对象将nmap命令写出外壳,然后使用InputStream读取响应

您可以找到执行此操作的代码here

本文链接:https://www.f2er.com/3135920.html

大家都在问