Write things I've seen. Programming, food, life, and culture. I won't discuss about BMTA here!

การ Jailbreak iOS ในต่อไปเราคงเห็นแต่รูปภาพเป็นหลัก

in

มันเป็นดราม่าระหว่างคนหาช่องโหว่ในการ Jailbreak กับคนที่อยากจะให้ Jailbreak ได้

เหตุมันมีอยู่ว่า คนที่ไม่ได้ทำอะไรเลยเอาแต่ร้องขอ ออกมาต่อว่าผู้หาช่องโหว่ในการ Jailbreak ว่าทำไมทำได้แล้วไม่ปล่อยออกมา ซึ่งเหตุผลของคนทำเขาก็ชัดเจนในจุดยืนว่า เขาไม่ต้องการให้มีคนหาประโยชน์จากช่องโหว่ที่เขาหามาได้ ไม่ว่าจะเป็นการนำ Tool ที่พัฒนาแจกฟรีไปหาเงิน (นึกไม่ออกก็ที่คุณไปจ้างให้ตู้ตามห้างทำให้นั่นแหละ) หรือการทำเครื่องมือสืบสวน (Forensics) โดยการนำ code ที่ถือว่าเป็น opensource (ไม่แน่ใจว่าเปิดเผยหรือไม่ แต่น่าจะ reverse ได้ไม่ยาก) ไปใช้หารายได้

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

ผมค่อนข้างเห็นด้วยในเหตุผลของเขานะ และนี่อาจจะเป็นสาเหตุที่ทำให้จำนวน Hacker ที่มีความเคลื่อนไหวในกระบวนการ Jailbreak มีจำนวนลดลงเรื่อย ๆ เพราะทนสภาพความเสื่อมโทรมของวงการไม่ได้ ทำฟรีแล้วไม่ได้อะไรคงไม่ว่า แต่ทำฟรีแล้วถูกชุบมือเปิบไปคงเป็นเรื่องที่ใคร ๆ ก็เคืองครับ

จะว่าไปถ้าจำเรื่อง SHAtter ได้ นั่นก็เป็นช่องโหว่ที่เขาจะเก็บไว้ใช้นะ แต่สุดท้ายก็ถูก Apple ค้นพบ (คาดว่า) จากการเก็บ log ที่ถูกส่งกลับไปทำให้ถูกปิดไปไม่ได้นำมาใช้งานในเครื่องมือ Jailbreak ใด ๆ เราก็ไม่ทราบว่าช่องโหว่ที่ถูกเก็บงำไว้นี้จะถูกปิดเมื่อใดเช่นกัน แต่ก็หวังว่ามันจะยังมีช่องโหว่ในระดับ Bootrom หรือให้ดีก็ Hardware เลยที่จะทำให้สามารถ Jailbreak ถาวรได้

ความยุติธรรมของศาล

in

ความยุติธรรมของศาลคือ ตัดสินคดีตามข้อกฎหมายที่มี

ความยุติธรรมของศาลคือ ตัดสินคดีตามข้อเท็จจริงที่นำสืบ รับฟังข้อเท็จจริงจากโจทก์และจำเลย

ความยุติธรรมของศาลคือ ตัดสินคดีตามที่รับฟ้อง

แต่ที่เราคิดกันว่าศาลไม่ยุติธรรมเพราะศาลไม่ได้ตัดสินข้างเรา หรือตัดสินไม่ถูกใจเรา หรือคิดไปเองว่าความยุติธรรมที่ล่าช้าคือความอยุติธรรม

เป็นองค์คณะไม่ใช่เรื่องง่าย ๆ ต้องผ่านการพิสูจน์ตัวเอง เหมือนทุกอาชีพนั่นแหละ แต่ปริมาณอรรถคดีกับปริมาณผู้พิพากษามันเหมาะสมกันหรือไม่? ศาลไม่ใช่เครื่องจักรผดุงความยุติธรรม ศาลเป็นเพียงองค์คณะที่จะมาตัดสินคดีความเป็นกรณี ๆ ไป เพราะข้อเท็จจริงในแต่ละคดีมารายละเอียดที่แตกต่างกัน มิเช่นนั้นเราก็ตัดสินคดีกันเองได้ไม่ต้องพึ่งศาลแล้วเพียงแค่เปิดดูคดีเก่า ๆ แล้วเทียบเคียงกันเอาเอง ซึ่งนั่นก็ไม่ใช่สิ่งที่ถูกต้องเพราะเราไม่มีอำนาจในการตัดสินคดี หรือจะเขียนโปรแกรมคอมพิวเตอร์สำหรับตัดสินคดีก็เป็นไปไม่ได้อีก เพราะข้อเท็จจริงที่แตกต่างกันเพียงนิดเดียว อาจมีผลต่อคำตัดสินได้ ซึ่งคอมพิวเตอร์อาจจะไม่สามารถตัดสินใจในส่วนนี้ได้เองแม้จะมีการพร่ำสอนมันอย่างไรก็ตาม เรายอมรับได้หรือไม่หากมีการนำช่องโหว่มาใช้ให้การตัดสินไม่เป็นไปตามที่ควรจะเป็น? แล้วคำว่าดุลยพินิจก็เป็นอีกคำที่คอมพิวเตอร์ไม่สามารถคิดได้ แต่ถ้าไม่ใส่ไว้ เรื่องบางเรื่องอาจจะวุ่นวายเกินกว่าที่ควรจะเป็นก็ได้

อันเนื่องจาก DelegateControl

ติดปัญหากับ DelegateControl มาหลายวัน วันนี้แก้ออกเสียที เป็นความสะเพร่าของผมเอง

ใน CKSDev มี Template การสร้าง DelegateControl ไว้ให้ใช้ แต่เหมือนจะไม่ได้เขียนคำอธิบายที่ชัดเจนไว้ให้ชัดเจนว่าต้องกรอกอะไร แล้วห้ามกรอกอะไร

หลักการของ DelegateControl คือ การโหลด Control ที่บนหน้าเว็บไม่รู้ว่าคืออะไรมาแสดง โดย Control ปริศนานี้จะถูกโหลดผ่าน Feature (ได้ทุก Scope เลย) ดังนั้นเราจึงต้องมาเขียน Element Manifest อธิบายมัน

สำหรับตัวอย่าง Tag ภายใน Element Manifest เช่น

<Control Id="ชื่ออ้างอิงที่จะเอาไปใช้" Sequence="เลขน้ำหนัก ยิ่งน้อยยิ่งเบา ยิ่งอยู่ก่อน" ControlSrc="ที่อยู่ของ Control ปกติจะใช้ ~/_controltemplates/ นำหน้า แต่ถ้าไปวางไว้ที่อื่นก็ใส่ Path ที่อ้างถึงได้ (อะไรที่ IIS มองเห็น)" />

หรือ

<Control Id="ชื่ออ้างอิงที่จะเอาไปใช้" Sequence="เลขน้ำหนัก" ControlAssembly="..." ControlClass="..." />

ปัญหาคือ ในแบบฟอร์มของ CKSDev ไม่ได้ระบุว่า หากกรอก ControlSrc แล้ว ไม่จำเป็นต้องกรอก ControlAssembly และ ControlClass (แต่ 2 ตัวนี้ต้องกรอกคู่กัน) หากกรอกไปหมดทุกอันเลย ผลที่ได้คือ Delegate Control จะไม่ถูกโหลดมาใช้งาน เพราะมันคงงงว่าจะอ่านจาก ascx หรือจะอ่านจาก Class กันแน่

เมื่อแก้ไขถูกต้องแล้วทุกอย่างก็จะทำงานเป็นปกติ

User เป็นเหตุ

เขียนโปรแกรมให้สุ่มหยิบ SPUser มาแสดงผล ทีนี้เกิดปัญหาว่า ไม่มี User ใดที่เข้าเงื่อนไขที่อยากให้แสดงผลเลย ตรวจสอบเงื่อนไขก็ดูไม่มีอะไรผิดปกตินะ แต่สิ่งที่ผิดคือ แหล่งที่ไปดึง User มาตรวจสอบ มีจำนวน User น้อยกว่าที่คาดไว้

เผอิญว่าใน SPWeb มันมีแหล่งที่ให้สามารถดึง User มาใช้ได้ 3 แหล่งคือ AllUsers, SiteUsers, และ Users ก็เกิดความสับสนว่า จะใช้จากแหล่งใดดี ไปเจอคำอธิบายคำตอบของเรื่องนี้ในกระดานสนทนา MSDN เลยตัดมาสรุปคิดว่าน่าจะใช้ประโยชน์ต่อไปได้

SPWeb.Users gets the collection of user objects that are explicitly assigned permissions in the Web site . It will not return users who have access through a group.

SPWeb.AllUsers gets the collection of user objects that represents all users who are either members of the site collection or who have browsed to the site as authenticated members of a domain group in the site. (note the "browsed to" here... adding a AD group to a site does not add the users to AllUsers immediately... they will not be listed here until they have visited the site at least once.)

SPWeb.SiteUsers gets the collection of all users that belong to the site collection.

สังเกตว่า AllUsers ก็จะพบแค่ User ที่ผ่านการ EnsureUser มาแล้วเท่านั้น

Syndicate content