Saturday, June 23, 2012

แปลงตัวเลข เป็น ภาษาไทย [php]

anonymous say : พี่เล็ก เขียน PHP แปลงตัวเลขเป็นภาษาไทยให้หน่อยได้ไหมครับ
พอดีทำใร VB.net แล้วแต่ก็ งง เลยอยากมองในมุม PHP บ้าง
เอาง่ายๆ ไม่เกิน 1-9999 พอครับ
เช่น กรอกตัวเลขลง textbox 123 ลงไป แปลงออกมา จะได้label "หนึ่งร้อยสิบสาม"

ผม say : เอา ใน vb.net มาดู แล้วจะบอก

(ส่วนนี่คือ code ของเขานะ)


Dim num = tbinput.Text
If (num >= 9999 & num = 0) Then
lboutput.Text = "In put Number 1 - 9999 Only"
Else
Dim i As Integer, max As Integer, r As String, n As String, Result As String
num = Trim(Str(Val(num)))
max = Len(num)
For i = 1 To max
r = Choose(((max - i + 1) Mod 6) + 1, "", "", "สิบ", "ร้อย", "พัน")
n = Choose(Mid(num, i, 1) + 1, "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า")
If r = "สิบ" And n = "หนึ่ง" Then n = ""
If n = "หนึ่ง" And r = "" And max <> 1 Then n = "เอ็ด"
If i = 1 And n = "เอ็ด" And max > 1 Then n = "หนึ่ง"
If r = "สิบ" And n = "สอง" Then n = "ยี่"
If r = "" And max - i + 1 > 6 Then r = ""
If n <> "ศูนย์" Then
Result = Result & n & r
End If
Next
lboutput.Text = Result
End If

บอกตรงๆ ผมมองไม่รู้เรื่องหรอก (แต่เหมือน if จะเยอะจัง - -'')
ก็เลยเขียนเป็น php ในแบบ ที่ตัวเองถนัดมากกว่า


 'ล้าน',
    '100000' => 'แสน',
    '10000' => 'หมื่น',
    '1000' => 'พัน',
    '100' => 'ร้อย',
    '10' => 'สิบ',
    '1' => '',
  );

  $num2TH_Word_1 = array(
    '1' => 'หนึ่ง',
    '2' => 'สอง',
    '3' => 'สาม',
    '4' => 'สี่',
    '5' => 'ห้า',
    '6' => 'หก',
    '7' => 'เจ็ด',
    '8' => 'แปด',
    '9' => 'เก้า',
  );

  $num2TH_Word_2 = array(
    '1' => 'เอ็ด',
    '2' => 'ยี่',
  );

  foreach($num2TH_Word as $x=>$y){
    $tmp = floor($input/$x);
    if($tmp>=1){
      if(($tmp==1) && ($x==10))$return .= $y;
      elseif(($tmp==2) && ($x==10))$return .= $num2TH_Word_2[($input/$x)].$y;
      elseif(($input==1) && ($x==1))$return .= $num2TH_Word_2[($input/$x)];
      else $return .= $num2TH_Word_1[($input/$x)].$y;
      $input = ($input%$x);
    }
  }
  return $return;
}

function is_valid_num($num){
  return is_numeric($num) && ($num >= 0) && (floor($num) == $num);
}

?>


ผลลัพท์ ก็
http://localhost/php.php?num=5121221
ห้าล้านหนึ่งแสนสองหมื่นหนึ่งพันสองร้อยยี่สิบเอ็ด

Saturday, June 9, 2012

MIME-Types Identification

MIME Types
MIME content-types supported by most web servers, 
identified with file extensions, are listed in the following table.

MIME Type Identification File Extension
application/acad AutoCAD dwg
application/arj compressed archive arj
application/astound Astound asd, asn
application/clariscad ClarisCAD ccad
application/drafting MATRA Prelude drafting drw
application/dxf DXF (AutoCAD) dxf
application/i-deas SDRC I-DEAS unv
application/iges IGES graphics format iges, igs
application/java-archive Java archive jar
application/mac-binhex40 Macintosh binary BinHex 4.0 hqx
application/msaccess Microsoft Access mdb
application/msexcel Microsoft Excel xla, xls, xlt, xlw
application/mspowerpoint Microsoft PowerPoint pot, pps, ppt
application/msproject Microsoft Project mpp
application/msword Microsoft Word doc, word, w6w
application/mswrite Microsoft Write wri
application/octet-stream uninterpreted binary bin
application/oda ODA oda
application/pdf Adobe Acrobat pdf
application/postscript PostScript ai, eps, ps
application/pro_eng PTC Pro/ENGINEER part, prt
application/rtf Rich Text Format rtf
application/set SET (French CAD) set
application/sla stereolithography stl
application/solids MATRA Prelude Solids sol
application/STEP ISO-10303 STEP data st, step, stp
application/vda VDA-FS Surface data vda
application/x-bcpio binary CPIO bcpio
application/x-cpio POSIX CPIO cpio
application/x-csh C-shell script csh
application/x-director Macromedia Director dcr, dir, dxr
application/x-dvi TeX DVI dvi
application/x-dwf AutoCAD dwf
application/x-gtar GNU tar gtar
application/x-gzip GNU ZIP gz, gzip
application/x-hdf NCSA HDF Data File hdf
application/x-javascript JavaScript js
application/x-latex LaTeX source latex
application/x-macbinary Macintosh compressed bin
application/x-midi MIDI mid
application/x-mif FrameMaker MIF mif
application/x-netcdf Unidata netCDF cdf, nc
application/x-sh Bourne shell script sh
application/x-shar shell archive shar
application/x-shockwave-flash Macromedia Shockwave swf
application/x-stuffit StuffIt archive sit
application/x-sv4cpio SVR4 CPIO sv4cpio
application/x-sv4crc SVR4 CPIO with CRC sv4crc
application/x-tar 4.3BSD tar format tar
application/x-tcl TCL script tcl
application/x-tex TeX source tex
application/x-texinfo Texinfo (Emacs) texi, texinfo
application/x-troff Troff roff, t, tr
application/x-troff-man Troff with MAN macros man
application/x-troff-me Troff with ME macros me
application/x-troff-ms Troff with MS macros ms
application/x-ustar POSIX tar format ustar
application/x-wais-source WAIS source src
application/x-winhelp Microsoft Windows help hlp
application/zip ZIP archive zip
audio/basic BASIC audio (u-law) au, snd
audio/midi MIDI mid, midi
audio/x-aiff AIFF audio aif, aifc, aiff
audio/x-mpeg MPEG audio mp3
audio/x-pn-realaudio RealAudio ra, ram
audio/x-pn-realaudio-plugin RealAudio plug-in rpm
audio/x-voice Voice voc
audio/x-wav Microsoft Windows WAVE audio wav
image/bmp Bitmap bmp
image/gif GIF image gif
image/ief Image Exchange Format ief
image/jpeg JPEG image jpe, jpeg, jpg
image/pict Macintosh PICT pict
image/png Portable Network Graphic png
image/tiff TIFF image tif, tiff
image/x-cmu-raster CMU raster ras
image/x-portable-anymap PBM Anymap format pnm
image/x-portable-bitmap PBM Bitmap format pbm
image/x-portable-graymap PBM Graymap format pgm
image/x-portable-pixmap PBM Pixmap format ppm
image/x-rgb RGB image rgb
image/x-xbitmap X Bitmap xbm
image/x-xpixmap X Pixmap xpm
image/x-xwindowdump X Window System dump xwd
multipart/x-gzip GNU ZIP archive gzip
multipart/x-zip PKZIP archive zip
text/html HTML htm, html
text/plain plain text C, cc, h, txt
text/richtext MIME Richtext rtx
text/tab-separated-values text with tabs tsv
text/x-setext Structurally Enhanced Text etx
text/x-sgml SGML sgm, sgml
video/mpeg MPEG video mpe, mpeg, mpg
video/msvideo Microsoft Windows video avi
video/quicktime QuickTime video mov, qt
video/vdo VDO streaming video vdo
video/vivo VIVO streaming video viv, vivo
video/x-sgi-movie SGI Movieplayer format movie
x-conference/x-cooltalk CoolTalk ice
x-world/x-svr Virtual reality svr
x-world/x-vrml VRML Worlds wrl
x-world/x-vrt Virtual reality vrt

Thursday, June 7, 2012

Domain Name System (DNS) คืออะไร

Domain Name System (DNS) คืออะไร


ในชิวิตการเข้าเน็ต ... ปกติแล้วเวลาเราจะเปิดเข้าเวป

เราไม่มานั่งพิมพ์ 127.0.0.1 แต่เรา พิมพ์ localhost แทน
เราไม่มานั่งพิมพ์ 210.1.61.196 แต่เรา พิมพ์ www.stephack.com แทน
เราไม่มานั่งพิมพ์ 31.13.79.20 หรือ 31.13.79.4 แต่เรา พิมพ์ www.facebook.com แทน
*( facebook ของมาค หรือ google .. มันมี server หลายเครื่อง ก็เลยมีหลาย ip )

หรือ เวลาเราจะเข้าไปที่ ip ของ notebook, หรือ มือถือ
เราก็พิมพ์ชื่อ ที่เราตั้งไว้ได้เลย

อยากให้นึกถึง ตอนที่ install windows ลงเครื่องใหม่ๆ
แล้ว มันมีเมนูเด้งขึ้นมาถามว่าจะตั้งชื่อเครื่องคอมเครื่องนี้ว่าอะไร
ไอ้ตรงนี้แหละ เป็นสาเหตุที่ทำไมต้องตั้งชื่อ คอม ทุกเครื่องในบ้าน หรือในร้าน คนละชื่อ
ก็เพื่อที่ IP มันจะได้ไม่ชนกัน นั่นเอง

ซึงพวก localhost, stephack.com, facebook.com เหล่านี้เนี้ย
เรียกว่า Domain Name System (DNS)
(หรือบางเวปก็อาจจะเรียกว่า Machine Names)



เท่าที่เห็นเลย มีการ ประยุคเซ็ต DNS
ให้วิ่ง loopback กลับมาที่เครื่องตัวเอง
หรือวิ่งไป ip ไหนก็ได้
(สามารถเซ็ตแก้ไข ที่ไฟล์ hosts
windows => C:\windows\system32\drivers\etc\hosts
linux => /etc/hosts
mac os => /private/etc/hosts)

ซึ่ง ผมจะยกตัวอย่าง ให้เห็นดังนี้แล้วกัน

กรณีที่หนึ่ง ... การ Jailbreak Iphone
ปกติแล้ว เวลาอัพเดท iphone เนี้ย
แอปเปิลจะมีการให้ เครื่อง iphone ส่งข้อมูลบางอย่าง
ไปเช็คที่เวปของแอปเปิล (ส่งไปที่ gs.apple.com [23.48.109.15])
แต่พอแก้ hosts ไฟล์ เป็น

74.208.10.249 gs.apple.com

ทีนี้ .. เวลาคอมจะติดต่อไปที่ gs.apple.com
จากที่ข้อมูลต้องถูกส่งไปที่ 23.48.109.15
จะกลายเป็น ถูกส่งไปที่ 74.208.10.249 แทน
นั่นก็เพื่อ backup SHSH blobs ไว้ที่ saurik (cydia) น่ะ

.. ตรงนี้ผมขอข้าม รายละเอียดแล้วกัน
เพราะ ไม่ค่อยไป ลงลึกเรื่อง Jailbreak
----------

กรณีที่สอง sv ragnarok เถื่อน (class3-ro)
พอเรา install client ของเขาในเครื่อง
เครื่องของเรา จะถูกแอบสั่งให้ไปแก้ไฟล์ hosts
ให้เวลาเข้า server คู่แข่งต่างๆ แล้ว
ข้อมูลจะถูกสั่งวิ่งกลับมาที่ 127.0.0.1 (localhost) แทน
ทำให้เข้าเวปต่างๆ ไม่ได้ (ลง server เค้าปุ๊ป .. เล่น server อื่นไม่ได้อีกเลย - -'')
----------

กรณีที่สาม แก้ hosts เพื่อแฮก
ส่วนมากจะพบในไวรัสบางตัวน่ะ
หลักการก็จะประมาณ ว่า
เพื่อสั่ง block เวป anti-virus ทั้งหลาย
(เพื่อให้ av ทำการ update ไม่ได้ จะได้ไม่รู้จัก ไวรัสชนิดนี้ อะไรทำนองเนี้ย)

Wednesday, June 6, 2012

หมายเลข IP คืออะไร เป็นอะไร ทำอะไรได้บ้าง ???

หมายเลข IP คืออะไร เป็นอะไร ทำอะไรได้บ้าง ???


ip address จะประกอบด้วยตัวเลข 4 กลุ่มคั่นด้วย จุด ( . )
เช่น ณ ตอนนี้ เวป stephack.com มี ip address = 210.1.61.196
ซึ่ง ค่าใน ip แต่ละหลัก จะเป็นตัวเลข --> 8bit . 8bit . 8bit . 8bit
ซึ่ง 8 bit จะมีสมาชิกได้ 256 ตัว คือ 0-255
เมื่อรวมกันก็จะมีค่า 32 bit
และ เนื่องจาก เพราะมี 4 หลักมั้ง
ก็เลยเรียก IP Version 4 [IPV4]
แต่ปัจจุบันคอมพิวเตอร์มันเยอะขึ้น มือถือ, ทีวี
ก็เริ่มจะต่อเน็ตกันได้หมดแล้ว
จำนวนแค่ 32bit มันก็เลยไม่พอ
เลยต้องเพิ่ม อีก 2 หลัก ก็เลยกลายเป็น IP Version 6 [IPV6] นั่นเอง
และ วันที่เขียนบทความนี้ (8 June 2011)
เค้ากำลังนับถอยหลังใช้ IPV6 อยู่นั่นเอง --> worldipv6launch.org

เนื้อหาจริงๆ คงประมาณนี้ ... และ ข้างล่าง คือ น้ำล้วนๆ
ดังนั้น ถ้าว่าง .. เชิญ อ่านต่อได้ จร้า





ผมคิดว่า ผมคงอธิบายเป็นบทความสาระๆ ไม่ได้
เพราะ คนที่ ไม่มีพื้นคอมเลย นั่งอ่านไป ก็ยังไม่เห็นภาพหรอก
ซึ่งหากใครอยากได้ คำอธิบายแบบ สาระๆ
ผมขอแนะนำให้ไปซื้อหนังสือ, เปิด wiki, ค้น google หรือ เรียนตาม มหาลัยเอาฮะ

เอาล่ะ .. ใครอยากอ่านผมบ่นต่อ (เนื้อหาจะบ่นวนไป วนมา อ่านแล้ว งง เหมือนเดิม 555)
ก็กลับมาทำความ รู้จัก IP address กันในฉบับผม แล้วกัน
(เข้าใจผิด ตรงไหน comment ทักมาได้ นะครับ)




ก่อนอื่น .. ไอ้เจ้า ip address เนี่ย
ผมจะยกให้รู้จักหลักๆ ที่ต้องเจอ คือ "loop back", "private", "public"
(ส่วนพวก gatway, netmark, subnet จะอธิบายน้อยๆ นะ
เพราะ ผมคิดว่าคนอ่านไม่น่าจะได้เจอบ่อย
และบทความมันจะละเอียดเกินไป
เอาเป็นว่า ในวันหน้าข้าง ถ้าต้องเจอกับตัว
ค่อย หาอ่าน จาก google เอาแล้วกัน มันมี อธิบายอยู่
[บทความผม พยายามเน้นกลุ่มคนที่ไม่รู้เรื่องแฮกและเป็นคอมเอาซะเลย])




กลับมาที่ "loop back" ต่อซึ่งไอ้เจ้า "loop back" เนี้ย
มันก็คือ เลข ip ที่มันวิ่งกลับมายังเครื่องตัวเอง
เช่น "127.0.0.1", "localhost"
ซึ่งในสมัยก่อน จะมีเรื่องฮาอยู่เกี่ยวกับ hacker (เกรียน)
ที่แฮก ip 127.0.0.1 แล้วสั่ง format drive c: ทิ้ง
ประมาณว่า มัน โง่+เกรียน ไปกดลบข้อมูลเครื่องตัวเอง
เพราะคิดว่า 127.0.0.1 เป็น ip คนที่ด่ามัน ซะงั้น
( ใครอยากอ่าน ต้นฉบับ ลองค้น google ว่า "i hack 127.0.0.1" ดู น่าจะเยอะ)




เอาล่ะ .. ถัดมาก็ "private ip"
พวกนี้ถ้าจะให้เห็นภาพ มันก็คือ "ip ใน network" ของเรานั่นเอง (lan, wifi อะไรทำนองเนี้ย)
จะพบเจอได้ เช่น ในบ้าน, ร้านเกมส์, หอพัก, ที่ทำงาน, มหาลัย ... เป็นต้น
ซึ่งส่วนมากแล้วแต่จะตั้ง จะเป็น "192.168.yy.xx", "10.0.0.xx", "172.16.0.xx"
(yy เท่ากับ 0 ถึง 255 และ xx เท่ากับ 1 ถึง 255)

ซึ่งจะมี "เร้าเตอร์" จะทำตัวเป็น GAYWAY เอ้ย Gateway
เช่น 192.168.1.1 (แล้วแต่ จะเซ็ตค่าในเร้าเตอร์)
แล้ว เร้าเตอร์ ก็จะเป็นตัวแจก IP ให้คอมแต่ละเครื่องที่อยู่ในระบบ network โดยอัตโนมัติ
(ตรงส่วนนี้ก็จะมีแยกย่อยอีกว่าเป็น dynamic IP หรือ static IP)

คนอ่าน : ไหนบอกว่า จะไม่เน้นคำอื่นๆ .. แต่นี่มึงเริ่มยัดให้คนเยอะไปแล้วนะ ไอ้เล็ก
ตาเล็ก : เดี๋ยวผมอธิบาย ภาษาไทยง่ายๆ ให้ว่ะครับ .. ใจเย็นๆ "รู้ไว้ใช่ว่า ใช้ตูดแบกหาม" นะครับคนอ่าน

ไม่ยาก ฮะ .. อ่านแล้ว ทำความเข้าใจง่ายๆ ดังนี้
เจ้า dynamic IP (DHCP) เนี้ย เป็น ip ที่เร้าเตอร์มันแจกให้ auto
สมมุติว่า
เอาคอมมาต่อสาย lan เจ้าเร้าเตอร์ .. เร้าเตอร์มันแจก ip มาให้เป็น 192.1.1.2
แล้วเอามือถือต่อ wifi .. เร้าเตอร์มันก็จะแจก ip มาให้เป็น 192.1.1.3
แล้วเอาตู้เย็นมาต่อ wifi .. เร้าเตอร์มันก็จะแจก ip มาให้เป็น 192.1.1.4
แล้วเอาเครื่องซักผ้ามาต่อ wifi .. เร้าเตอร์มันก็จะแจก ip มาให้เป็น 192.1.1.5
ซึ่งปกติเจ้าตัวเลขก็จะเรียงไปเรื่อยๆ

แต่สมมุติ วันดีคืนดี ปิดเร้าเตอร์ไป 2-3 วัน
แล้วมาเปิดขึ้นมาใหม่ โดยที่ ไม่ได้ ต่อคอม, มือถือ
หลังจาก เร้าเตอร์ มันกำลังเปิด (คิดภาพหน้าจอ windows กำลังบูท)
ระหว่าง โหลดๆๆ มันก็จะเช็คหา คอม, มือถือ, ตู้เย็น, เครื่องซักผ้า
แล้วพอเร้าเตอร์ มันไม่เจอ คอมกับมือถือ(สมมุติว่าปิดอยู่) แล้วเจอแต่ตู้เย็น กับ เครื่องซักผ้า
มันก็จะแจก ip ให้ ตู้เย็นเป็น 192.168.1.2 (แทน PC)
และแจก ip ให้ เครื่องซักผ้าเป็น 192.168.1.3 (แทนมือถือ) ... ซะงั้น

คนอ่าน : แล้วมันเป็นยังไง มันเป็นปัญหาตรงไหน ?
ตาเล็ก : จริงๆ มันก็ไม่ได้มีอะไรหรอก เพราะเร้าเตอร์ มันฉลาดพอที่จะไม่แจก ip ซ้ำกัน


แต่ถ้าคุณโหลดบิทด้วย PC หรือ ใช้ครี Dota
ซึ่งคุณอาจจะตั้งค่าเร้าเตอร์ ให้ forward port มาหา PC
ที่ 192.168.1.2 ... มันก็จะไม่เจอ PC แต่ไปเจอ ตู้เย็นแทน
ก็จะกลายเป็นคุณเอาตุ้เย็น มาครี dota แทน
ซึ่งตู้เย็นมันจะ noob พาไปตาย เอ้ย มันครี dota ไม่ได้ *0* (เริ่มออกทะเล)

ก็เลยต้องมีการ เซ็ต "static ip" (fix ip) กันนั่นเอง
ส่วนการเซ็ต static ip มันเซ็ตได้ทั้งจากใน เร้าเตอร์ และ ในคอม
(การเซ็ตให้เร้าเตอร์ รู้ว่า อะไรเป็น คอม อะไรเป็น ตู้เย็นได้จาก ชื่อคอม และ mac address)
ส่วนการเซ็ต static ip ด้วยเร้าเตอร์ จะง่ายหน่อย และไม่มีปัญหา IP ซ้ำ
แต่ถ้า เซ็ตกับคอม หาก เร้าเตอร์แจก 192.168.1.2 ให้ตู้เย็นไปแล้ว
แต่ คอมดันตั้งให้เป็น 192.168.1.2 ด้วยอีก
อะไรที่เปิดทีหลัง ก็จะใช้งาน network ไม่ได้ เป็นต้น

* กรณีแชร์ไฟล์ หรือ ข้อมูลในเน็ตเวิค (รวมถึง sniff ข้อมูล หรือ จะแฮกใครในเน็ตเวิค)
หากมีคนถามว่า ip คอมของเรา คือ ip อะไร
ก็บอก พวก 192.168.1.xx ไป .. คนถามก็จะเข้ามาเอาไฟล์ได้
แต่ถ้าไปบอก คนอื่นใน internet ว่าเข้ามาเอาไฟล์ที่ 192.168.1.xx
คุณก็จะไม่ต่างอะไรกับ bitchchecker มากเท่าไหร่
(ชื่อเกรียนในเรื่อง "i hacked 127.0.0.1" นั่นแหละ)




เอาล่ะในที่สุดก็ถึงเรื่อง public ip ซะที (ผมเล่ายาวไปมะ ?, น้ำเยอะไปป่ะ ?)
เจ้า public ip ก็คือ ip ที่เอาไว้แสดงตัวตนใน internet
ว่าอยู่ที่ไหน, ประเทศอะไร, ใครเป็นผู้ดูแล, ฯลฯ
(เวลาไปแฮกใครไว้ เค้าจะได้ตามถึงบ้านได้ถูก)

ซึ่งจริงๆแล้ว มันก็มี static, dynamic แบบ private ip อีกนั่นแหละ
แต่ ISP ทั้งหลาย (true, tot, 3bb, dtac, ais) จะแจกแบบ dynamic มาให้
(สังเกตุดีๆ isp จะเหมือนเร้าเตอร์ ที่คอยแจก ip ให้นั่นแหละ)
ซึ่ง แต่ก่อน ... ปกติ 24 ชม. เน็ตจะตัดซักที เพื่อ เปลี่ยน ip นั่นเอง

ส่วนใครที่ต้องการ fix ip (static ip) ก็ต้องจ่ายเงินเพิ่ม
หรือ พวกเครื่อง server ทั้งหลายที่วางตาม ISP (IDC) จะได้ ip เดิมตลอด
ก็เพราะ ทาง IDC (cat, cslox, กสท.) แจก ip แบบ fix ip มาให้นั่นเอง




เอาล่ะ .. ไหนๆ ก็ไหนๆ ขอยกตัวอย่าง พฤติกรรม เกรียนๆ ที่ต้องยุ่งเกี่ยวกับ ip ให้ฟัง ซักหน่อย

เคสแรก "เกรียน camfrog"
ใน camfrog เนี้ย พวกเจ้าของห้อง (ชื่อสีแดง) จะมีความสามารถ ดู ip ชาวบ้านได้
พวกเจ้าของห้องที่เกรียนๆ ก็จะเอา ip คนที่หล่อกว่าแบบผม
ไป ยิง (flood) ให้เน็ตผม lag หรือ หลุดไปนั่นเอง

เคสสอง "เกรียน dota"
พวกนี้ใช้ โปรแกรมช่วย create ห้อง (ก็จะเห็น ip คน join)
พอเทพๆ แบบผมเข้าไป kill มันเยอะๆ มันก็จะ ยิง ip ให้ผมหลุดจากเกมส์
ทำให้ มันแพ้หนักกว่าเดิม (เอ๊ะ สรุปแล้ว ผมเทพ หรือ นูป กันแน่ว๊าาา)

เคสสาม "เกรียนเวปบอร์ด"
พวกที่ชอบไปด่าชาวบ้านตามเวป
หรือ หมิ่นใครต่อใคร แล้วคิดว่าเค้าจะตามไม่เจอ
ผมอยากจะบอกให้รู้ไว้ว่า
เวปต่างๆ จะมีระบบเก็บ log ip ย้อนหลัง
ซึ่งแค่นี้ก็ตามได้แล้ว ว่าเล่นที่ไหน ร้านไหน ฯลฯ
(ดังนั้นอย่าคิดว่า ใครไม่รู้ นะครับ)

เคสสี่ "เกรียนแฮก"
ก็แค่เกรียน ที่เอา ip เวปนั่นๆ (เวปเป้าหมาย)
มาหาข้อมูล แล้ว revese หรือ ฯลฯ เพื่อแฮกเวป นั่นเอง




จบเรื่อง IP .. ได้ความรู้กันมั่งมั้ย ?

Tuesday, June 5, 2012

การเปลี่ยนค่า mac address บน linux

เนื่องด้วย เดี๋ยวจะต้อง มีเรื่องให้ทำเลว หนึ่งอย่าง
ก็คือ แอบใช้ wifi ชาวบ้าน ... ซึ่ง wifi เจ้านี้
ให้ login ผ่านเวป และ ส่งค่า mac address ไปซะด้วย

ดังนั้น ก็ต้อง ปลอม mac address กันก่อน



คำสั่ง ก็ไม่มีอะไรมาก
ifconfig wlan0 down
ifconfig wlan0 hw ether 00:00:00:00:13:37
ifconfig wlan0 up


ผลงาน


[root@www ~]# ifconfig wlan0
wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:13:37  
inet6 addr: fe80::200:ff:fe00:1337/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:1670 (1.6 KiB)  TX bytes:588 (588.0 b)



ปล. ท่านผู้อ่านกรุณา อย่า เดาว่า เป็น @TRUEWIFI นะครับ !!? (นู๋มะเกี่ยวนะ >_<)

Monday, June 4, 2012

อธิบายพื้นฐานศัพท์แฮก ต่างๆ สไตร์ ตาเล็ก..หากคิดจะมาทางสายนี้ต้องอ่านครับยาวสัดๆ!!

จริงๆ บทความนี้ เขียนไว้ราวๆ 3 ปีได้แล้วมั้ง (เขียนไว้อยุ่ในเวป opkwin)
และเนื่องมาจาก ตั้งใจจะไม่ทำ เวป opkwin แล้ว (ปล่อย domain หมดอายุไปแระ)
ก็เลย เอามาลง ไว้ในเวปนี้อีกที

ปล. แต่ผมคิดว่า หลายๆ คนก็คงจะได้อ่านจากเวป อื่นๆ ที่ไม่ใช่จาก opkwin มาบ้างแล้วล่ะมั้ง



Bug คือ อะไร
โดยปกติ โปรแกรมคอมพิวเตอร์, web, Os นั้นจะเขียนขึ้นมาจาก ภาษาคอมพิวเตอร์ ต่างๆ กันไป
เช่น บอท OPKwin เขียนมาจากภาษา perl, SMF เขียนมาจากภาษา php+mysql, นาย ก. เขียนระบบโหวตรูปของเวปขึ้นมาเองโดยใช้ php+mysql, ฯลฯ เป็นต้น
ซึ่งหากเมื่อโปรแกรมผู้พัตนาโปรแกรมเหล่านี้ ไม่ได้ทำการ เช็คค่าที่ทำการ input เข้าไปโดยผู้ใช้ อาจจะทำให้เกิด Bug ได้นั่นเอง
นั่นอาจเพราะ ตอนทำโปรแกรมขึ้นมาคงไม่ได้คาดคิดว่า ช่องที่ทำขึ้นมาให้ใส่แค่ตัวเลข จะมีคนอุดตริใส่ ข้อความลงไป อะไรประมาณนั่น !!
เหตุการณ์เหล่านี้ ทำให้โปรแกรมเกิดการทำงานผิดพลาดขึ้น หรือที่เรียกกันว่า Bug นั้นเอง
ซึ่ง Bug เหล่านี้อาจะไม่ส่งผลอะไรเลย หรือ อาจจะทำให้ เกิดผลร้าย ต่อเครื่องที่รันโปรแกรมก็เป็นไปได้ทั้งนั้น
และอาจจะมี user ที่ประสงค์ที่จะซน (hacker) ใช้ช่องโหว่จาก Bug ที่เกิดขึ้นทำนู้นนี่นั่นโน่น ได้นั่นเอง




Exploit, Local Exploit, Remote Exploit คืออะไร
Exploit ส่วนมากก็คือ ช่องโหว่ ที่เกิดขึ้นจาก Bug ที่ส่งผลต่อระบบนั่นเอง
ตั้งแต่ เปิดโปรแกรมมาแล้วเครื่องค้าง, คอมดับ, ไปจนกระทั้ง ดึง Shell มาใช้งานได้ !!
ซึ่งถ้าโปรแกรม เป็นประเภท Open Source (โปรแกรมที่เปิดเผย code, แจกฟรี)
ก็จะสามารถโหลดมานั่งหา Bug ได้หน่อย แต่ถ้าไม่ เนี่ย ต้องมานั่ง debug โปรแกรมทีละการทำงาน
หรือไม่ ก็ต้องมานั่งเดาอย่างเดียว
ปกติแล้ว Exploit จะมี 2 ประเถทคือ
- Local Exploit คือ จะต้องไปทำ Exploit นี้บนเครื่องที่มีโปรแกรมที่มีบัคตรงตามเงื่อนไขเท่านั้น
- Remote Exploit คือ จะทำ Exploit จากเครื่องไหนก็ได้ ขอให้ เครื่องที่จะโดนมีโปรแกรมที่มีบัคตรงตามเงื่อนไขเป็นพอ
เช่น หากโปรแกรม winamp มี Remote Exploit ทำให้สามารถดึง Shell ขึ้นมาใช้งานได้
ลองคิดตามครับว่าหาก ตาคริด เหยื่อของผมกำลังเปิดหนังน้องมิยาบิ ที่โดนตาเล็กยัด Exploit ส่งไปให้ด้วยโปรแกรม winamp
ในระหว่างเวลาที่ตาคริตนั่งดูน้องมิยาบิอยู่นั้น ตาเล็กก็สามารถ เข้าเครื่องตาคริตได้ สั่งทำงานได้ทุกอย่างเหมือนเครื่องตัวเองเด๊ะๆ
.. ว่าแล้วผมก็แอบโหลดหนังลับเฉพาะ คริต-อ้อย จากเครื่องตาคริตกลับมา เอาไว้แบร๊คเมล์ มันดีก่า .. คิคิ

ปล. เหตุการข้างต้นเป็นเรื่องสมมุติที่ทำได้จริง ... แต่หากทำจริง เงื่อนไขจะเยอะกว่านี้ ยากกว่านี้พอสมควร
เพราะหากเจาะจง user แบบด้านบน ต้องรู้ว่าตาคริตเปิด น้องมิยาบิตอนไหน (เดาอย่างเดียว)
และต้องหา ip ตาคริตให้ได้เพื่อ connect ไปตอนตาคริตเปิดโปรแกรม winamp เล่นหนังมิยาบิที่มี exploit
ถ้า คนธรรมดา น่าจะหายากหน่อยมั้ง และถ้าตาคริตดันใช้ VLC เปิดหนังก็ อดอีก !!

แต่ถ้าพวกที่แฮกแบบไม่เจาะจงเป้าหมาย
เช่นโปรแกรม utorrent มี exploit ใน file .torrent แล้ว มีคน ทำ torrent ยัด exploit แล้วบอกว่าเป้นหนังน้องอ้อย
จากนั้นไปปล่อยให้โหลด ในเวปที่คนโหลดเยอะๆ
จากนั้น แล้วรอเช็ค ip คนโหลดจากใน peer แล้วก็นั่งไล่แฮก คนโหลดทีละคน

อ๊ะ ... หากคุณคิดว่า คิดว่าแฮกไปเถอะ ไม่มีอะไรให้แฮกน่ะเหรอ ?
.. user-pass เวปในตำนาน, email, paypal, hi5, facebook, k-bank, code pro camfrog, ฯลฯ เหล่านี้ล่ะ ... คุณมีมั้ยเอ่ย !?




0day คืออะไร
ตามปกติมันก็คือ ช่องโหว่ของโปรแกรมหรือ website ต่างๆ ที่ถูกค้นพบ ซึ่งปกติ ผู้พบมักจะแจ้งผู้ผลิตก่อน (ไอ้ที่ไม่แจ้งก็เยอะ)
เมื่อผู้ผลิต แก้ไขช่องโหว่แล้ว ผู้พบก็นำออกมาประกาศให้รู้กันโดยทั่วไป ตามเวป exploit ต่างๆ เช่น exploit-db เป็นต้นนั่นเอง
ซึ่ง มันก็แปลตรงตัวคับ ว่า 0 วันครับ เพราะ มันจะใช้ช่องโหว่นี้ได้จนกว่าผู้ใช้ หรือ website จะ update แพทป้องกันจากผู้ผลิด
แต่ ถ้าผู้ใช้ยังไม่ update ตาม ก็ยังใช้ช่องโหว่นี้ได้อยู่ นะ เช่น ช่องโหว่ของ ie 6 (ที่แค่เปิดเวป ก็ติดไวรัสทันที)
ดังนั้น ใครยังใช้ ie6 อยุ่ ก็ยังรั่วอยู่เป็นต้น ซึ่ง คอสแฮกต่างๆ ที่ผมสอนอยู่นี่ ก็เปรียบเสมือน 0day เช่นกัน
แต่มันยังใช้งานได้อยู่เพราะคนไม่ค่อยจะอัพเดทกันนั่นเอง (เรื่องนี้ สอนในคอสแฮก คอสที่1)




priv8 คืออะไร
มันเป็นการพิมพ์แบบ แสลง พ้องเสียงจากคำว่า private ซึ่งหมายถึง ใช้เฉพาะกลุ่ม ไม่แจกจ่ายคนไม่สนิท อะไรประมาณนั้น
อาจจะได้เจอใน php-shell บางตัว หรือ บัคบางอัน (อันนี้ เหมือนเอามาลงคำแปลให้เฉยๆเลยเน๊อะ )




Shell, PhpShell คืออะไร
Shell เนี้ยมันแปลว่า หอย คับ แต่พอเกี่ยวกับเรื่องแฮก มันเปรียบเสมือนตัวความคุมระบบ ที่สามารถสั่งให้คอมมันทำงานต่างๆ
ยกตัวอย่างเช่นใน windows เจ้า shell เนี้ย ก็คือ file command.exe หรือ cmd.exe ที่มันอยุ่ใน c:\windows\system32 นั่นแหละคับ
ส่วนใน linux ก็คือพวก /sbin, /bin, nologin อะไรทำนองนั้น นั่นเอง
แล้วทีนี้ในเหล่าเครื่องที่เป็น webserver ตามปกติจะมีภาษา php ให้ใช้งาน คนก็เลย เขียนสคริป php
มาให้หน้าตาเท่ห์ และใช้งานง่ายๆ ขึ้นมาเพื่อเรียก shell ขึ้นมาใช้ทางหน้าเวปได้เลย
สคิปเหล่านี้เขียนแจกกันเพียบเช่น r57, c99 ซึ่งนั่นก็คือ PhpShell นั่นเอง

หากถามผมว่ามันทำอะไรได้บ้าง ผมคงบอกได้ไม่หมด เอาเป็นว่า ยกตัวอย่างเป็น น้ำจิ้ม ซักนิด คือมันสามารถ
รันโปรแกรม, ปิดโปรแกรม, สร้างfile, ลบ file, อ่านข้อมูลใน file, ไปจนถึง ปิดเครื่อง หรือ format คอม กันเลยทีเดียว !!
เป็นไง น้ำจิ้มหอย นี้รสเด็ดมะ !!
แต่ไม่ต้องกลัวครับ ปกติ มันจะมีระดับสิทธิ์ (Permission) ไว้ให้แต่ละ user อยู่ ซึ่งสิทธิ์พวก format, shutdown เหล่านั้น
ถ้าไม่ใช่เจ้าของเครื่อง (root, adminstrator) ไม่มีทางทำได้ครับ ตามปกติสำหรับเครื่องที่เซ็ตดีๆหน่อย
ขนาดแค่เปิดอ่าน file ยังไม่สามารถข้ามไปอ่านของคนอื่นได้เลยครับ




Permission คืออะไร
มันคือ สิทธิ์ ของแต่ละ user ที่อยู่บนเครื่องครับ มีคู่ linux และ windows ในระดับ server มานานแล้ว
แต่ใน windows เนี้ย คุณป๋า "บิลเกต พ่อทุกวินโด้" เพิ่งจะให้ความสำคัญแก่มันมากขึ้นก็เพิ่งใน vistra และ win7 นั่นเอง
หลังจากโดนไวรัสทั้งหลายเล่นงานจนงอมไปหลาย รุ่น
ปกติไม่ว่าจะ win หรือ linux เวลาเพิ่ม user เข้าไปในเครื่องนั้น
user ที่ เพิ่มมาใหม่จะได้รับ Path เป็นของตัวเอง ซึ่งจะมีสิทธิ์ทำนั่นนี่นู้นได้เฉพาะ Path ของตัวเองเท่านั้น
จะ ข้ามจาก Path ของตนเองไปซนใน Path ของชาวบ้านไม่ได้ ประมาณว่า จะแอบไปดูข้อมูลของ user เพื่อบ้านที่อยู่ path ข้างเคียงไม่ได้นั่นเอง
... แต่ทำได้ด้วยวิธีการที่เรียกว่า Bypass นั่นเอง !! (เรื่องนี้ สอนในคอสแฮก คอสที่2)




Path คืออะไร
พาธ นั้นไม่ใช่ พาส ตามที่หลายๆคนได้อ่านเจอ "พาธ" แล้วคิดว่าผมเขียนผิดในใจคับ
แต่มันคือที่อยู่ของ Folder หรือ directory นั่นเอง
เช่น โปรแกรม notepad.exe อยู่ที่ c:\windows\notepad.exe ซึ่ง พาธก็คือ c:\windows\ นั่นเอง
และ พาธแบบเขียนเต็มๆ ก็คือ c:\windows\notepad.exe คร๊าบบบโผ๊ม
ซึ่ง พาธเนี้ย มันสำคัญตรงที่ว่า เวลาเราจะเรียกโปรแกรม แต่ดันใส่ พาธผิด มันก็จะหาโปรแกรมไม่เจอ
มันก็อาจจะขึ้น error หรือไม่มีอะไรเกิดขึ้นเลย จริงมะ !!
ทีนี้เวลา bypass จะไปดู file ชาวบ้าน ถ้าใส่ พาธผิด มันก็ไม่เจอ file มันก็ ไม่ขึ้นอะไรให้ดูนี่ดิ
... อันนี้สำคัญ ที่มือใหม่หลายๆคนมักจะมา ตายน้ำตื้นกัน




Bypass คืออะไร
เป็นการอาศัยช่องโหว่ ภายในระบบ กระโดด ไป ดูข้อมูลของชาวบ้าน ที่อยู่ภายในเครื่องเดียวกัน
ประมาณว่า เวป server เปรียบเสมือน อพาทเม้นหรือแมนชั่น ใหญ่ๆ แห่งหนึ่ง
แล้วเวปที่อยู่ข้างในเปรียบเสมือนผู้อาศัย คนนอกทั่วไปจะเข้าอพาทเม้นนี้ไม่ได้ การแฮกก็จะเป็นไปได้ยาก
แต่ถ้า คนข้างใน โจรกันเอง ก็ จะง่ายขึ้นอีก 1 ขั้นตอน เพราะไม่ต้องมานั่งหาทางเข้าเครื่อง (ยากอ่ะ)

สมมุติชื่อ ตาเล็กแมนชั่น (เครื่องserver)
แล้วภายในมีนาย opkwin.com, stephack.com พักอาศัยอยู่ (เวปที่อยู่ในเครื่อง)

ซึ่ง หาก บุคคลภายนอก เช่น ตาคริต มัน จะมาแฮ๊กหนังโป๊ป๋มเพราะมันหื่น
แต่การจะเข้ามาในแมนชั่นแห่งนี้ จะไม่สามารถเข้ามาได้ เพราะติดพาสเข้าเครื่อง
ซึ่งตาคริต พยายามจะแฮกเท่าไหร่ก็ไม่ได้พาสเครื่อง
(เพราะ พาสเครื่องผมใช้อักษร a-z A-Z 0-9 แถมด้วยอัขระแปลกๆทั้งหมดทั้งมวลที่มีใน 3 โลก ความยาว 255 หลัก ถ้าเมิงแฮกได้อีก กรูยอม  :o )
ทีนี้ ตาคริตก็ปลอมตัวมาเป็น windows98SE-handsome.com มาขอเช่าอยู่ด้วย
ด้วยความที่ไม่รุ้ว่าเป็นคริตนูปปลอมตัวมา + ที่ชมผม ว่าผมหล่อ + ซึ่งจริงๆแล้วผมเห็นแก่ตังค่าเช่า sv ... ก็เลย ให้ user มันไป
แล้วตาคริต ก็ทำการ bypass มาขโมยข้อมูลจาก stephack.com แอบดูดหนังโป๊ไปจนหมด
แถมลบหนังโป๊ที่ตาเล็กสะสมไว้ทิ้ง ปล่อยให้ตาเล็กเจ็บใจเล่น ... เป็นต้น
... ตาเล็กก็จะทำได้แค่ร้องว่า หนังโป๊กูอยู่หน๋ายยยย  :'(





ช่องโหว่แบบ Full Disclosure คือ อะไร
เป็นช่องโหว่ที่ทำให้ attacker (ผู้โจมตี) เข้าถึงข้อมูลต่างๆ ที่มีการป้องกันไว้ได้
เช่น เข้าถึงไฟล์ password, source code ต่างๆ ... ได้เป็นต้น





path disclosure คืออะไร
แนะนำ อ่านอันนี้ (พร้อมรูปประกอบ)
http://blog.stephack.com/2013/11/path-disclosure.html

Friday, June 1, 2012

แจก conkyrc ของผม

พอดีมีคนถามมา ว่า มา conkey รูปนาฬิกา
ที่เดินอยู่บนหน้าจอซ้ายล่างใน desktop ของผม คือตัวไหน

ซึ่งผมก็จำไม่ได้แล้ว = =''
แต่เอาเป็นว่า ผมแจก code ตรงนี้แล้วกัน

ส่วนตรงบรรทัดที่ ผม Highligh นั่นคือ ตำแหน่งที่จะให้แสดงบนหน้าจอนะครับ

use_xft yes
xftfont 123:size=12
xftalpha 0.1
update_interval 1
total_run_times 0

own_window_type override
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager

own_window yes
own_window_transparent yes

double_buffer yes
minimum_size 250 5
maximum_width 450
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color white
default_shade_color red
default_outline_color green
alignment top_left
gap_x 100
gap_y 870
no_buffers yes
uppercase no
cpu_avg_samples 1
net_avg_samples 1
override_utf8_locale yes
use_spacer yes




TEXT
${offset 5}${voffset 20}${color FFA300}${font GE Inspira:pixelsize=70}${time %d}${voffset -30}${color EAEAEA}${font GE Inspira:pixelsize=100}${time %H:%M}${font}
${offset 5}${font GE Inspira:pixelsize=25}${color FFA300}${time %A} ${offset 9} ${color EAEAEA}${time %B} ${offset 9} ${time %Y} ${font}
${offset 5}${font Ubuntu:pixelsize=15}${color FFA300}HD ${offset 20}$color${fs_free /} / ${fs_size /}${offset 80}${color FFA300}CPU1-2 ${offset 9}$color${cpu cpu0}%, ${cpu cpu1}%
${offset 5}${color FFA300}RAM ${offset 9}$color$mem / $memmax ${offset 72}${color FFA300}CPU3-4 ${offset 9}$color${cpu cpu2}%, ${cpu cpu3}%${voffset -30}

Why You Don't LIKE My FaceBook Fanpage ?
×
blogger