Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Angry IP Scanner

Brief history and reasons behind technological choices
by

Anton Keks

on 14 November 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Angry IP Scanner

Angry IP Scanner
Building of
fast and friendly network scanner
or creating
cross-platform
desktop apps
1998
2002
2005
now
Anton Keks, @antonkeks
Started as a toy project
v 1.x
Uploaded to web
wow, people actually
download it!
development continues...
C++ w/ MFC
Mostly rewritten
plugins, new features
still C++, still Win32
v 2.x
Problems with Windows
Full rewrite in Java
Demand grows...
Featured in books, magazines, CDs, etc
but...
1 000 000 downloads
v 3.x
downloads
of 3.x and counting...
github.com/angryziber/ipscan
contributors wanted :-)
GPL
Timeline
Java
"Write once,
run anywhere"
Better productivity
(than C++)
Fairly good and
easy network API
JNI / JNA
if needed
Available on most
machines already
Multithreading
built-in
GUI
Lots of experience
(in Java)
Swing
SWT
Network scanning
2001
- first CVS commit
open -source
cross-platform
extensible
user-friendly
+ already included in the JRE
- non-native look
esp in 2005
- feels slow
from Eclipse project
+ full native look and feel
+- slightly unusual API
- need to distribute with the app
themes
future-proof
what user expects
Packaging
or how users run your software
.exe
.deb
.rpm
App bundle
32-bit
vs
64-bit
HELL
9
binary
packages
ant
handles them all
Testing
Launch4j - to the rescue
dpkg-deb
rpmbuild
alien
.dmg
.zip
ipscan.exe
java -jar ipscan.exe
(size does matter)
But SWT alone can't handle it all
HIG
human
interface
guidelines
menus
shortcuts
button order
Like HTML, good UI needs to be
crafted by hand
9 000 000
there are still too many
Windows users
future
jpcap / winpcap
plugins
pull-requests
OS fingerprinting
Plugins
Feeder
Fetcher
Exporter
Pinger
.jar
Searching of addresses
with specific properties
Open-source
Purposes of scanning
Offensive
Defensive
Maintenance
Network inventory
Dependency Injection
picocontainer
50kb
holds all code together
even GUI components
manages plugins
Raw Sockets
for low-level network operations
rocksaw
- JNI
IP
UDP
TCP
ICMP
WinXP+
JNA
iphlpapi.dll
Java
Native
Access
Finally, no native code!
CODE
JNA
Plugins
SWT
PicoContainer
Executors
build/packaging
ant
deb
rpm
launch4j
nsis
rocksaw
pingers
i18n
Unit tests
LibraryLoader
Full transcript