标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
[打印本页]
作者:
damnyou
时间:
2006-11-29 23:52
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
[这个贴子最后由damnyou在 2006/11/29 11:57pm 第 2 次编辑]
#!c:\perl\perl.exe -w
use Tk;
use IO::Socket::INET;
use Net::Ping;
use encoding ';euc-cn';, STDIN => ';euc-cn';, STDOUT => ';euc-cn';;
require Tk::ProgressBar;
#use Win32::Process;
my $portlist="21,23,25,80,135,139,3389";
my $str=';127.0.0.1';;
my $value=';cy';;
my $conn=';tcp';;
my $percent_done=0;
$connn=0;
my $cportc=0;
my $cport=0;
$|=1;
open(IEP,';echo %SystemDrive% |';);
$iepath=<IEP>;
chomp($iepath);
my $iestr=';R0lGODlhuAEoAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/AP//AAAA//8A/wD/
/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBm
AABmMwBmZgBmmQBmzABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/
MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNm
ZjNmmTNmzDNm/zOZADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/
mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZm
zGZm/2aZAGaZM2aZZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb/
/5kAAJkAM5kAZpkAmZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZ
AJmZM5mZZpmZmZmZzJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwA
M8wAZswAmcwAzMwA/8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZ
ZsyZmcyZzMyZ/8zMAMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8A
mf8AzP8A//8zAP8zM/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+Z
zP+Z///MAP/MM//MZv/Mmf/MzP/M////AP//M///Zv//mf//zP///ywAAAAAuAEoAAAI/wAfCBxI
sKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzAPMmAQkabE
mTYZ0sQ5M6bPn0CDCo1IrajRo0iTKk0KcWdOnT2hPn2qMKpAq0NNVsvKtStXagjCih1LtmxYVYbS
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
/OAIl0hAAAA7';;
START:
my $mw=MainWindow->new or die ';Err!';;
$mw->title(';Port Scanner By Xtiger www.Xtiger.net&www.ThySea.com';);
$mw->geometry("450x365");
$mw->maxsize(450,365);
my $image=$mw->Photo(-data =>';R0lGODlhDQAPALMAAP//////AMzMzJmZmZmZAGZmZjOZ/wCZzAAA/wAAzAAAmQAAAP///wAAAAAA
AAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFFAAMACwAAAAADQAPAAAERJCxQWuVE+gNRFnSACxk
6YHZciCJogxfOCa0e8qL0rZ36v69QWlI+og4SGNHwBSYPgWLtBAjWjFYIXZiIXgXFmLgO4wAACH5
BAkUAAwALAAAAAANAA8AAAQVkMlJq734mr0x79rniVlpnmiqrlcEADs=';);
my $image1=$mw->Photo(-data =>';R0lGODlhDQAPALMAAP//////AMzMzJmZmZmZAGZmZjOZ/wCZzAAA/wAAzAAAmQAAAP///wAAAAAA
AAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQFFAAMACwAAAAADQAPAAAERJCxQWuVE+gNRFnSACxk
6YHZciCJogxfOCa0e8qL0rZ36v69QWlI+og4SGNHwBSYPgWLtBAjWjFYIXZiIXgXFmLgO4wAACH5
BAkUAAwALAAAAAANAA8AAAQVkMlJq734mr0x79rniVlpnmiqrlcEADs=';,-palette =>100);
$mw->Photo(';imageweb';,-data =>$iestr);
my $enhost=$mw->Label(-text=>';目标主机:';)->place(-x=>20,-y=>45);
my $ent=$mw->Entry(-width=>40,-textvariable=>\$str)->place(-x=>120,-y=>45);
my $run=$mw->Button(-command=>[\&run],-text=>';扫 描';,-height => 1,-width => 4)->place(-x=>370,-y=>42);
my $exx=$mw->Button(-command=>[\&exx],-text=>';退 出';,-height => 1,-width => 4)->place(-x=>410,-y=>42);
my $web=$mw->Button(-command=>[\&web],-image => ';imageweb';,-height => 35,-width => 441,-borderwidth=>1)->place(-x=>2,-y=>0);
my $yj=$mw->Radiobutton(-text=>';常用端口';,-variable=>\$value,-value=>';cy';)->place(-x=>20,-y=>65);
my $entport=$mw->Entry(-width=>50,-textvariable=>\$portlist)->place(-x=>120,-y=>65);
my $zj=$mw->Radiobutton(-text=>';自定义端口';,-variable=>\$value,-value=>';dy';)->place(-x=>20,-y=>85);
my $entstartport=$mw->Entry(-width=>10,-textvariable=>\$startport)->place(-x=>120,-y=>85);
my $enz=$mw->Label(-text=>';至';)->place(-x=>200,-y=>85);
my $entendport=$mw->Entry(-width=>10,-textvariable=>\$endport)->place(-x=>240,-y=>85);
my $rtcp=$mw->Radiobutton(-text=>';TCP连接模式';,-variable=>\$conn,-value=>';tcp';)->place(-x=>90,-y=>110);
my $rsyn=$mw->Radiobutton(-text=>';SYN连接模式';,-variable=>\$conn,-value=>';syn';)->place(-x=>280,-y=>110);
my $frame=$mw->Frame();
my $probar=$frame->ProgressBar(
-borderwidth => 1,
-width => 6,
-length =>340,
-anchor => ';w';,
-from => 0,
-to => 100,
-blocks => 1,
-colors => [0,';skyblue';,20,';green';,40,';blue';,60,';yellow';,80,';red';],
-variable => \$percent_done)->pack();
$frame->place(-x=>40,-y=>135);
my $stdout=$mw->Scrolled(';Text';,-scrollbars=>';e';,-height=>15,-width=>60)->place(-x=>0,-y=>145);
$stdout->configure(-background=>';dimgray';,-borderwidth => 3,);
$t = $stdout->Subwidget(';scrolled';);
$t->tagConfigure(';close';, -foreground => ';green';);
$t->tagConfigure(';open';, -foreground => ';red';);
$t->tagConfigure(';other';, -foreground => ';cyan';);
sub run
{
$cportc=0;
$ent->configure(qw/-state disabled/);
$run->configure(qw/-state disabled/);
$yj->configure(qw/-state disabled/);
$entport->configure(qw/-state disabled/);
$zj->configure(qw/-state disabled/);
$entstartport->configure(qw/-state disabled/);
$entendport->configure(qw/-state disabled/);
$rsyn->configure(qw/-state disabled/);
$rtcp->configure(qw/-state disabled/);
my $host=$str;
if($value eq "dy")
{
$mw->messageBox(qw/-icon error -title 错误! -type OK -message/ => "请指定端口范围!") and goto END if($startport eq "" or $endport eq "");
@port=($startport..$endport);
}
if($value eq "cy")
{
$mw->messageBox(qw/-icon error -title 错误! -type OK -message/ => "请指定端口列表(用逗号隔开)!") and goto END if $portlist eq "";
@port=split(/,/,$portlist);
}
$stime=time;
$cport=scalar(@port);
if($conn eq "tcp")
{
foreach(@port) {
$connn++;
if($connn%2==0){$conico=$mw->Label(-image => $image,-height => 30,-width => 30)->place(-x=>0,-y=>110);}
if($connn%2!=0){$conico=$mw->Label(-image => $image1,-height => 30,-width => 30)->place(-x=>0,-y=>110);}
$mw->update;
if(my $sock = IO::Socket::INET->new(PeerAddr => $host,
PeerPort => $_,
Proto => ';tcp';)
)
{
my $restr="[开放] $host:$_\n";
$t->insert(';end';, "$restr", ';open';);
}
else
{
my $restr="[关闭] $host:$_\n";
$t->insert(';end';, "$restr", ';close';);
}
$cportc++;
$percent_done=int(($cportc/$cport)*100);
my $zstr="$cportc/$cport";
my $zt=$mw->Label(-textvariable=>\$zstr)->place(-x=>405,-y=>125);
$mw->update;
}
}
if($conn eq "syn")
{
foreach my $port (@port) {
$connn++;
if($connn%2==0){$conico=$mw->Label(-image => $image,-height => 30,-width => 30)->place(-x=>0,-y=>110);}
if($connn%2!=0){$conico=$mw->Label(-image => $image1,-height => 30,-width => 30)->place(-x=>0,-y=>110);}
$mw->update;
$p = Net::Ping->new("syn");
$p->{port_num} =$port;
$p->ping($host);
if($p->ack)
{
my $restr="[开放] $host:$port\n";
$t->insert(';end';, "$restr", ';open';);
}
else
{
my $restr="[关闭] $host:$port\n";
$t->insert(';end';, "$restr", ';close';);
}
}
$cportc++;
$percent_done=int(($cportc/$cport)*100);
my $zstr="$cportc/$cport";
my $zt=$mw->Label(-textvariable=>\$zstr)->place(-x=>405,-y=>125);
$mw->update;
}
$etime=time;
$ttime=$etime-$stime;
my $restr="------------------------------\n扫描完成耗时 $ttime 秒!\n";
$t->insert(';end';, "$restr", ';other';);
END:
$ent->configure(qw/-state normal/);
$run->configure(qw/-state normal/);
$yj->configure(qw/-state normal/);
$entport->configure(qw/-state normal/);
$zj->configure(qw/-state normal/);
$entstartport->configure(qw/-state normal/);
$entendport->configure(qw/-state normal/);
$rtcp->configure(qw/-state normal/);
$rsyn->configure(qw/-state normal/);
}
sub web
{
#Win32::Process::Create(my $ProcessObj,
# qq/$iepath\\Intern~1\\iexplore.exe/,
# "iexplore.exe http://www.xtiger.net",
# 0,
# NORMAL_PRIORITY_CLASS,
# ".")|| die "$!\n";
system("$iepath\\Progra~1\\Intern~1\\iexplore.exe http://www.xtiger.net");
$mw->update;
}
sub exx
{
exit;
}
MainLoop;
复制代码
作者:
bigblock
时间:
2006-11-29 23:54
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
我编辑一下.这样看代码比较方便.
对perl不大了解.
能否简介一下主要功能.
作者:
damnyou
时间:
2006-11-30 00:00
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
[这个贴子最后由damnyou在 2006/11/30 00:51pm 第 1 次编辑]
呵呵,谢谢了.
就是个端口扫描器.
单线程的.没啥技术含量.
本来是我自己拿来练习写图形界面程序的。
好久不写代码,就放上来了,期待有兄弟能在此基础上加点什么,也同时让我学习一下.
作者:
bigblock
时间:
2006-11-30 00:11
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
能不能写成5线程的.
这样更有用一些.
作者:
黑色叶子
时间:
2006-11-30 00:14
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
这和以前的有什么不一样?
作者:
chinanic
时间:
2006-11-30 09:29
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
$iestr=""
这里面的东西是什么,抓的包么?
作者:
damnyou
时间:
2006-11-30 12:59
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
那里不是什么"包",而是程序中包含的图片的BASE64编码,这样就可以不用引用外部的图片文件.之前我在黑海有文章写过这个.
这个是我写图形界面程序练习用的.没想认真做.
加之现在工作忙,可能没空写了。而且有很多技术细节需要去做.比如多线程对"句柄的读写操作","资源冲突"....想着头疼,没空做.
作者:
bigblock
时间:
2006-11-30 16:56
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
呵呵
perl这里研究的也不多.
作者:
x86
时间:
2006-11-30 18:43
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
多线程也不会很麻烦:)
速度太快反而不好
作者:
chinanic
时间:
2006-12-1 07:55
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
[chinanic奸诈的笑道]:嘿嘿,还是VB利索,用Winsock可以轻松实现多线程。。
只是不知道哪个的扫描速度快点,嗯,还有就是系统资源的占用问题。。哪个大点。
作者:
damnyou
时间:
2006-12-2 18:27
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
似乎任何扫描器都一样占系统资源,特别是在多线程时,这个应该是系统架构的问题,不是编程能解决的.
多进程就比多线程占资源少.
作者:
chinanic
时间:
2006-12-14 07:45
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
多进程少??那搞MDI窗体。。
作者:
damnyou
时间:
2006-12-14 11:50
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
似乎在*uix中 很多人都推荐使用多进程.
似乎是系统构架的问题.
作者:
风灵风之子
时间:
2006-12-18 00:12
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
从操作系统的观点来看,多进程就多占用资源
个人觉得多线程好
作者:
copyday
时间:
2006-12-18 18:55
标题:
[原创]自己用perl写的很不成熟的一段图形界面的端口扫描程序代码
要是ASP 的 代码还能看懂些``
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2