Skip to main content

ดู Symbol ใน executable ต่างๆ

Submitted by ezybzy on

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

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

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

Tags