-
Notifications
You must be signed in to change notification settings - Fork 2
Misc Notes
There are 3 ways in which this can be done
-
A C wrapper around the nmap’s source code - the Android application’s native code makes calls to nmap’s functions to implement various functionalities.
Pros : A better integration with nmap’s code
Cons : Difficult to maintain codebase if nmap’s functions change
Also, if writing a C wrapper, we will have to compile nmap with Android NDK which is another big challenge as NDK links against Android’s libc which does not support many Android functions. -
An IPC wrapper around nmap’s code. Running nmap as a separate process and communicating with it using Unix sockets.
This again is similar to the one above with the same cons. -
Communicating with nmap binary through STDOUT and STDIN.
Pros : This is a better method of implementation as it remains independent of changes to nmap’s source code.
We are currently using this method but with a poor implementation in Java. This can be made better and faster.
Also, Umit Desktop Scanner currently interfaces with the nmap binary on the host machine. the methods used in Umit Desktop Scanner can be used to interface with nmap. Also, it will maintain consistency with Umit’s idea.
There are the following tasks to do this a. Porting nmap to Android (done)
b. Understanding various nmap functions which can be used on an Android device
c. Writing a C wrapper around nmap’s binary
d. Writing the JNI code for the C wrapper and interfacing with Java
e. Implementing the UI for nmap’s various functions
Porting other networking tools to Android (Not all, but those that seem important as we develop and release to users)
To add additional functionality to the app, the following existing linux networking utilities can be ported to Android
- Traceroute (current implementation through busybox. try linux traceroute)
- iperf
- tcpdump
- iptraf
a. Loading and Saving scans
b. Scheduling scans
c. Global Settings Manager
d. Exporting scans (XML)
e. Scheduling scans through a Web UI (desktop)
//NO NEED SINCE WE ARE USING NMAP
Currently we use the above mentioned scanning methods in Java and C. Those methods can be improved and made faster by optimizing code.
Subtasks
a. Optimize
b. Import NIC Vendor database
c. Adaptive Scanning rate
d. Service discovery