วันนี้ไปฟัง 2600 meeting มา ใน session ที่สอง Ammarit Es Shellcodenoob มาพูดเรื่อง Linux Executable Exploitation ทำให้นึกถึงการทำมาหากินของลุงเมื่อ 27 ปีก่อน ลุงเป็นกลุ่มแรกๆในไทยที่หาเลี้ยงชีพด้วยการแฮ็ก จึงอยากมาเล่าให้ฟัง

การแฮ็กสมัยนั้นไม่เหมือนสมัยนี้ ต่างกันมาก แต่เดี๋ยวจะเล่าให้ฟังว่า 27 ปีผ่านไป วิธีการยังคงเหมือนๆเดิม สมัยก่อนไม่มี Pen Test, ไม่มี Security Expert, ไม่มีอะไรทั้งนั้นใครอยากทำอะไรก็ทำ…

ตอนนั้นวินโดว์สยังไม่มีภาษาไทย ลุงต้องการใช้ภาษาไทยจึงจำเป็นต้องแฮ็กเอา ใน Windows มี DLL อยู่หลักๆ 3 ตัวคือ Kernel.dll, Users.dll, Gdi.dll ตัวที่สนใจมีตัวเดียวคือ GDI.dll ซึ่งโปรแกรมทุกตัวจะแสดงผลอะไรก็ call API ใน DLL ตัวนี้

วันนี้วิทยากรพูดถึงคำสั่งสองตัวในการ Hack Windows คือ LoadLibraryA และ GetProcAddress วิธีการที่ลุงใช้คือ inject Machine code คล้ายๆกับที่ทำ shellcode ที่พูดวันนี้ เข้าไปในสอง function นี้ ให้ เรียก DLL ที่ทำ function ขึ้นมาใหม่ ซึ่งทำหน้าที่จัดการภาษาไทย

การทำแบบนี้สมัยนั้นเรียกว่าการทำ Procedure Hook ซึ่ง hook แค่ไม่กี่ฟังก์ชั่น เช่น TextOut, ExtTextOut, SelectFont, GetTextExtentExt, GetTM, GetCharWidth ก็ทำภาษาไทยได้ (ไม่รู้คำสั่งพวกนี้ยังใช้กันอยู่หรือป่าว)

หากินกับการทำระบบภาษาไทย (ThaiWin) มาตั้งแต่ Windows 3.0, 3.1 จนถึง Windows 95 แม้ไม่โครซอฟต์ทำไทยแล้ว ก็ยังหากินอยู่เพราะยังมีคนต้องการใช้ Type 1 Fonts ระบบภาษาไทยในยุคแรกๆนั้นแพงมาก ทำให้สามารถทำมาหากินได้จนฮึกเหิมลาออกจากหมอมาเป็นโปรแกรมเมอร์จนทุกวันนี้

พอหมดทางหากินกับวินโดว์ส เพราะเค้าทำไทยแล้ว ก็หันไปหากินกับ Pocket PC แทน ทำโปรแกรมพลิกหน้าจอ และระบบภาษาไทยต่อมาอีกหลายปี (ThaiWinCE) ทั้งหมดใช้เทคนิคเดียวกันหมดคือ Procedure Hook

เป็นการหากินกับการแฮ็กยาวนานราวๆ 15 ปีได้ (1987 – 2002) จากนั้นก็ห่างเหินกับการแฮ็กไปมาก เพราะเริ่มไม่มีอะไรหากิน (สมัยนั้นการทำ pen test ยังไม่แพร่หลาย ประกอบกับไปหลงระเริงกับ Mac และ iPhone ในเวลาต่อมา)

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