udhcp client script hooking

Hooking เป็นเทคนิคหนึ่งซึ่งทำให้ซอฟต์แวร์สามารถ ปรับเปลี่ยน หรือเพิ่มเติม ได้ในภายหลัง โดยผ่านการดักจับ (intercept) function call, message หรือ event

การที่ต้องมีความสามารถนี้เนื่องจาก เพื่อให้ซอฟต์แวร์สามารถปรับเปลี่ยนไปตามเหตุการณ์ หรือค่าบางอย่างที่เกิดขึ้นในโปรแกรมในขณะ run-time ได้ในภายหลังโดยที่ไม่ต้องไปแก้ไขที่ source code ต้นฉบับ ซึ่งอาจทำโดยบุคคลที่ไม่ใช่ผู้พัฒนาโปรแกรมนั้นๆ ทำให้โปรแกรมมีความยืดหยุ่นสูง สามารถเปลี่ยนแปลงในภายหลังได้ง่าย

โปรโตคอล DHCP เองนั้นมีความยืดหยุ่นสูง สามารถใส่ค่า option ไว้ได้หลายค่า การจะเขียนโปรแกรมเพื่อประมวลผล option ต่างๆที่ใส่มาใน โปรโตคอล DHCP จึงไม่ใช่เรื่องง่าย เนื่องจากบางครั้งเราไม่รู้ว่า option ที่ใส่มานั้นต้องการจะทำอะไรกับมัน ใน DHCP client หลายๆตัว จึงได้ออกแบบให้นักพัฒนา หรือ ผู้ดูแลระบบสามารถเขียน script ง่ายๆในการประมวลผล DHCP option เหล่านั้นได้โดยไม่ต้องแก้ไข source code หลักของโปรแกรม และ script เหล่านั้นเป็นสิ่งที่ผู้ดูแลระบบคุ้นเคยอยู่แล้ว เช่น shell script เป็นต้น

udhcp เป็น dhcp client ที่นิยมใช้ใน embedded system เนื่องจากมีขนาดเล็ก ประมาณ 19KB เราจึงเห็น udhcp ถูกใส่ไว้ใน busybox ซึ่งเป็น UNIX utility suite ที่มักใช้ใน embedded system

DHCP protocol นอกจากจะช่วยแจก IP address ให้แก่ client ได้แล้ว ยังสามารถ ส่งค่าต่างๆไปให้ client ได้ ยกตัวอย่างเช่น DNS server ip address และ gateway address เป็นต้น

dhcp client ส่วนมาก จะรับค่ามาตรฐานเหล่านี้มาแล้วทำการเซ็ทให้กับ client อัตโนมัติ แต่ค่าบางค่า อย่างเช่น hostname dhcp client จะไม่ทำอะไรให้ เนื่องจากไม่ใช่เรื่องปกติที่ client จะรับค่า hostname มาจาก dhcp server
อ่านเพิ่มเติม