ดู Symbol ใน executable ต่างๆ

in

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

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

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

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <tt> <sup> <sub> <img> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You can link nodes to other nodes using the following syntax:
    [node:node_id,title="val2"]

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.