Unix

คำนวณเวลาในการ...

Submitted by ezybzy on Mon, 2011-07-04 - 00:31

เนื่องจากได้สาย Thunderbolt มาก็อยากจะลองวัดเวลาในการถ่ายโอนข้อมูล แต่ก็ยังไม่สามารถหาโปรแกรมที่ใช้วัดเวลาในการถ่ายโอนข้อมูลได้จริง ๆ

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

time cp a b

คำนวณเวลาของคำสั่ง cp a b

Blog Tags

ไฟล์น่ารู้สำหรับทำ Mockup

Submitted by ezybzy on Wed, 2010-10-06 - 22:20

เนื่องจาก Apple ได้ทำการเปลี่ยนระบบ Backup ของ mdhelper ไปแล้ว โดยเอาไฟล์ .mdinfo ออกแล้วก็เอานามสกุลไฟล์ .mddata ออกจากไฟล์ดั้งเดิม ทำให้เป็นเรื่องวุ่นวายในการตามไปแก้ไขไฟล์เดิมเพื่อจับ Restore กลับเข้าไปใน iPhone แต่ก็ไม่ได้หมายความว่าเราจะทำอะไรกับมันไม่ได้

ถ้ายังจำโครงสร้างเดิมๆ ได้ ไฟล์เดิมๆ เราก็สามารถแก้ไขได้ด้วยวิธีเดิมๆ แล้วปล่อยให้ iTunes จัดการ Restore กลับเข้าเครื่องได้เช่นเดิม ลองมาดูชื่อไฟล์ที่น่าสนใจกันว่ามีอะไรบ้าง

Blog Tags

ใช้ curl โหลดอย่างต่อเนื่อง

Submitted by ezybzy on Thu, 2010-09-09 - 20:07

เคยไหมที่ดาวน์โหลดอะไรอยู่แล้วถูกปลายทางถีบเราออกมาอย่างไร้เหตุผล

ไม่เป็นไร เรามีทางช่วยท่านได้ ด้วยคำสั่ง curl ท่านสามารถดาวน์โหลดไฟล์ที่ไม่สมบูรณ์ให้สมบูรณ์ได้ เพียงแค่สั่งดังต่อไปนี้

curl -C - -O ที่อยู่ไฟล์ที่ต้องการดาวน์โหลด

คำอธิบาย

  • พารามิเตอร์ C เพื่อระบุว่าจะให้ดาวน์โหลดต่อจากตำแหน่งใด ส่วน - อันกลางเข้าใจว่าเป็นการให้ดาวน์โหลดจากตำแหน่งสุดท้ายของไฟล์
  • พารามิเตอร์ O เพื่อให้ทำการบันทึกชื่อไฟล์ด้วยชื่อเดียวกับที่กำหนดไว้บนฝั่งเซิร์ฟเวอร์นั่นเอง

ถ้าอยากดาวน์โหลดแบบพวก Download manager ที่โหลดหลายๆ Part ได้ก็มีวิธีเช่นกัน โดยใช้พารามิเตอร์ r โดยต้องระบุช่วงที่ต้องการดาวน์โหลด เช่น 0-499, 500-999, 1000-, หรือ -1000 (1000 ไบท์สุดท้าย) แล้วใช้คำสั่ง cat รวม Part ต่างๆ เอาอีกที

Blog Tags

Quick Unix Reference

Submitted by ezybzy on Mon, 2010-04-05 - 05:20

เผอิญดูวีดีโอสาธิตการ Jailbreak iPad เห็นเขาเล่น Terminal พร้อมด้วยคำสั่ง !ตัวเลข ก็เลยเกิดอาการสงสัยว่ามีวิธีสั่งแบบนี้ด้วยเหรอก็เลยลองค้นดูก็พบกับ Quick Unix Reference อันนี้

มีที่น่าสนใจเช่นคำสั่ง history ที่เอาไว้แสดงว่าเคยพิมพ์อะไรใน Command บ้าง ถ้าจะล้างก็ใส่พารามิเตอร์ -c เข้าไป เกลี้ยงหายในพริบตา (เอาไว้ปิดงาน เวลาไม่อยากให้เขารู้ว่าสั่งอะไรไปในเครื่องเขาบ้าง)

หมวด ! นี่ก็มีที่น่าสนใจคือ !! เอาไว้อ้างถึงคำสั่งล่าสุดทั้งก้อน ถ้าลืม sudo ก็จับ sudo ไว้ข้างหน้าแล้วแล้วพ่วงท้ายด้วย !! หรือถ้าตกพารามิเตอร์บางอย่างก็นำหน้าด้วย !! แล้วต่อท้ายด้วยพารามิเตอร์ที่ต้องการ

Blog Tags

ดู Symbol ใน executable ต่างๆ

Submitted by ezybzy on Thu, 2009-06-18 - 19:22

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

ต้องเข้าใจก่อนว่าโปรแกรม executable ต่างๆ มันเป็น binary แต่แน่นอนว่าใน binary นี้ มันต้องมีอะไรที่เราพอจะแกะมาอ่านได้ วิธีพื้นๆ ที่เขาใช้กันคือ ใช้คำสั่ง strings ซึ่งคำสั่งนี้จะทำการสกัดเอา String ที่พอจะอ่านได้จาก binary ออกมาให้เราดูคำละบรรทัด

แต่ก็มันก็มีอีกส่วนที่เราอ่านไม่ออก (แต่คอมมันอ่านออก) นั่นก็คือ Symbol ซึ่งหลงเหลือจากการแปลงโปรแกรม ซึ่งส่วนนี้จะทำให้ได้เห็นชื่อตัวแปรหรือชื่อคลาสบ้าง คำสั่งที่ใช้เป็นอีกคำสั่งคือคำสั่ง nm พอสั่งปุ๊บก็จะเห็นเลยว่ามีชื่อตัวแปรอะไรน่าสนใจให้เราพอจะเดาได้ว่าโปรแกรมนี้มันใช้อะไร ทำอะไร (แต่ไม่รู้หรอกว่าทำงานอย่างไร เว้นแต่จะไปแกะดูคำสั่งในระดับ assembly)

Blog Tags

ทำให้ iPhone แสดงค่าแบตเตอรี่ที่เหลือ

Submitted by ezybzy on Wed, 2009-06-17 - 15:28

เกิดอาการมันเคี้ยว iPhone ของตัวเอง อยากให้มันแสดงว่า Battery ตอนนี้เหลืออยู่กี่เปอร์เซ็นต์แต่ไม่อยาก Jailbreak (เพราะยังทำไม่ได้)

จำได้ว่าเมื่อก่อน มีคนเคยทำ FakeCarrier กับ FakeTimeString โดยไม่ต้องทำการ Jailbreak แถมยังใช้โปรแกรมบนฝั่ง Mac ทำเสียด้วย ก็เลยลองค้นดูหลักการว่าเขาทำอย่างไร ผลก็คือจริงๆ เขาแค่แก้ไฟล์ com.apple.springboard.plist ที่จริงๆ แล้วไฟล์นี้อยู่ในเครื่องที่ใช้ Sync เจ้า iPhone นั่นแหละ แต่ปัญหาคือวิธีที่ iTunes ทำการ Backup ตัวข้อมูลในเครื่อง มันจะถูกเก็บเป็นไฟล์ที่เราอ่านชื่อไม่ออกจำนวนมากมาย (ก็คือทุกอย่างใน /var/mobile) แต่ตัวข้อมูลไม่ได้มีการดัดแปลงให้พิสดารแต่ประการใด!

ทีนี้ปัญหาก็คือ เออแล้วไฟล์ที่เราต้องการมันคือไฟล์ไหนล่ะ? Spotlight ช่วยได้ไหม? ไม่ได้ แล้วจะทำอย่างไรก็เลยลองค้นหาวิธีก็พบว่า ใช้แค่สองคำสั่งผสมกันคือ ใช้คำสั่ง find ในการวิ่งไปตามไฟล์ใน Folder ที่ต้องการผสมกับคำสั่ง grep ซึ่งใช้ในการค้นหา String ได้ดีอยู่แล้ว ทีนี้ก็ต้องไปดูว่าแล้ว com.apple.springboard.plist มีอะไรที่น่าสนใจพอจะให้เดาได้ว่าคือมัน ตอนแรกลองค้นหาคำว่า SB ก็เจอบานตะไทเลย เลยเปลี่ยนเป็นอะไรที่เจาะจงขึ้นเลยค้นคำว่า SBLanguageRestart ก็พบไฟล์ที่ต้องการ

find . -type f -name "*.mddata" -exec grep -il "SBLanguageRestart" {} \;

เสร็จแล้วก็จัดแจง ใช้ Property List Editor แก้ซะจนเรียบร้อย (น่าแปลกใจตรงที่ Apple ได้ใส่ค่า SBShowBatteryLevel มาให้แล้ว แต่กลับยังไม่มีช่องทางในการเปลี่ยนค่านี้ให้จากโปรแกรมในตัว iPhone) แล้วทำการ Restore เครื่องกลับ ปรากฏว่าเหมือนเดิม!

ก็เลยค้นต่อไปพบว่า จริงๆ แล้วเราต้องเพิ่ม SBShowBatteryPercentage เข้าไปอีกอัน ก็เลยทำใหม่อีกรอบ จัดการ Restore ก็ยังใช้ไม่ได้ อะไรของมันหว่า? (หรือมัน Restore ลงไปยังที่ที่มันไม่ควรอยู่?)

ประหลาดใจตรงที่ iPhone Simulator ใส่แค่ SBShowBatteryLevel มันก็ใช้ได้แล้วนะ ทำไมเครื่องจริงต้องใส่เพิ่มเข้าไปอีกอัน?

มีคนพูดถึงเรื่องนี้ไว้ด้วยแฮะ ทำไปคนละทิศคนละทางเลย!

Blog Tags