สุดยอดความคิดเห็น
ความคิดเห็นที่ 2
จากรูปของ จขกท

มันคือ file ของโปรแกรม calc.exe (เป็นข้อมูลสำหรับให้เครื่องอ่านน่ะครับ)
จขกท เล่นใช้ Notepad เปิด file calc.exe เลยน่ะครับ ก็ย่อมอ่านไม่รู้เรื่อง
เมื่อเปิด file calc.exe ด้วย Notepad สิ่งที่ได้คือ notepad พยายามเปิดมาในรูปแบบของ ตัวหนังสือ (8 bits = 1 Byte)
ซึ่งก็คือการอ่านข้อมูลทีละ 8 bits แล้วแสดงผล โดยเทียบกับตาราง ASCII
ยกตัวอย่าง
สมมติเราสร้าง file test.txt ด้วยโปรแกรม Notepad แล้วพิมพ์คำว่า Hello world ลงไปแล้ว save

ตัว file จริง ๆ มันเก็บข้อมูลแบ่งทีละตัวอักษร (8 bits) ดังตัวอย่าง (แสดงด้วย เลขฐาน 16) (มีค่า 0-255)
48=H 65=e 6C=l 6C=l 6F=o 20=" " 77=w 6F=o 72=r 6C=l 64=d

ซึ่งแต่ละตัวเมื่อเทียบกับตาราง ASCII แล้วมันแสดงเป็นภาษามนุษย์น่ะครับ
(ตารางสำหรับแสดงอัขระ 256 ตัว ตั้งแต่ 0-255 (00-FF) สำหรับแสดงผลเป็นรูป/อักขระออกมาน่ะครับ)
(ข้อมูล 8 bits คือ ชุดข้อมูล 8 ตำแหน่ง ที่แทนด้วย 0 หรือ 1 (เลขฐาน 2) 00000000 - 11111111 ซึ่งแทนรหัสได้ = 2 ยกกำลัง 8 = 256 แบบ)


ไอ้พวก text file น่ะมัน map เป็นภาษามนุษย์ได้ครับ แต่พวกโปรแกรม เช่น calc.exe
มันเป็นข้อมูลหรือรหัสสำหรับให้คอมพิวเตอร์อ่าน และแต่ละช่วงรหัส อาจไม่ใช่ 8 bits
เมื่อเปิดโดยโปรแกรม Notepad ที่พยายามอ่านข้อมูลในโครงสร้างสำหรับมนุษย์ (อ่านทีละ 8 bits)
พอมาแสดงผลเบยเป็นแบบที่ จขกท เห็นน่ะครับ
อ่อ อาจมีบางช่วงที่ exe เก็บข้อมูลตรงกับภาษามนุษย์ ก็จะพออ่านได้ ไม่แปลกครับ
ต.ย. ลองเปิด file calc.exe ด้วย HexEditor ครับ

มันคือ file ของโปรแกรม calc.exe (เป็นข้อมูลสำหรับให้เครื่องอ่านน่ะครับ)
จขกท เล่นใช้ Notepad เปิด file calc.exe เลยน่ะครับ ก็ย่อมอ่านไม่รู้เรื่อง
เมื่อเปิด file calc.exe ด้วย Notepad สิ่งที่ได้คือ notepad พยายามเปิดมาในรูปแบบของ ตัวหนังสือ (8 bits = 1 Byte)
ซึ่งก็คือการอ่านข้อมูลทีละ 8 bits แล้วแสดงผล โดยเทียบกับตาราง ASCII
ยกตัวอย่าง
สมมติเราสร้าง file test.txt ด้วยโปรแกรม Notepad แล้วพิมพ์คำว่า Hello world ลงไปแล้ว save

ตัว file จริง ๆ มันเก็บข้อมูลแบ่งทีละตัวอักษร (8 bits) ดังตัวอย่าง (แสดงด้วย เลขฐาน 16) (มีค่า 0-255)
48=H 65=e 6C=l 6C=l 6F=o 20=" " 77=w 6F=o 72=r 6C=l 64=d

ซึ่งแต่ละตัวเมื่อเทียบกับตาราง ASCII แล้วมันแสดงเป็นภาษามนุษย์น่ะครับ
(ตารางสำหรับแสดงอัขระ 256 ตัว ตั้งแต่ 0-255 (00-FF) สำหรับแสดงผลเป็นรูป/อักขระออกมาน่ะครับ)
(ข้อมูล 8 bits คือ ชุดข้อมูล 8 ตำแหน่ง ที่แทนด้วย 0 หรือ 1 (เลขฐาน 2) 00000000 - 11111111 ซึ่งแทนรหัสได้ = 2 ยกกำลัง 8 = 256 แบบ)


ไอ้พวก text file น่ะมัน map เป็นภาษามนุษย์ได้ครับ แต่พวกโปรแกรม เช่น calc.exe
มันเป็นข้อมูลหรือรหัสสำหรับให้คอมพิวเตอร์อ่าน และแต่ละช่วงรหัส อาจไม่ใช่ 8 bits
เมื่อเปิดโดยโปรแกรม Notepad ที่พยายามอ่านข้อมูลในโครงสร้างสำหรับมนุษย์ (อ่านทีละ 8 bits)
พอมาแสดงผลเบยเป็นแบบที่ จขกท เห็นน่ะครับ
อ่อ อาจมีบางช่วงที่ exe เก็บข้อมูลตรงกับภาษามนุษย์ ก็จะพออ่านได้ ไม่แปลกครับ
ต.ย. ลองเปิด file calc.exe ด้วย HexEditor ครับ

ความคิดเห็นที่ 3
มัวแต่อธิบายลืมตอบ
Q1 : ตัวหนังสือพวกนี้คืออะไร? , มีไว้เพื่ออะไรครับ
A1 : รหัสคำสั่งสำหรับให้คอมพิวเตอร์อ่าน เพื่อทำงานครับ
แปลจากภาษามนุษย์ (เช่นภาษาโปรแกรมต่าง ๆ เช่นเขียนด้วยภาษา C แล้ว แปล(compile) เป็นภาษาเครื่อง)
เมื่อคอมพิวเตอร์อ่านก็จะเข้าใจและทำงานตามคำสั่งต่าง ๆ ได้
ยกตัวอย่าง สมมติ
ต้องการให้คอมพิวเตอร์ปิด
shutdown ---> คอมพิวเตอร์ (สั่งอะไรไม่เข้าใจ)
shutdown --compile-> FF 0A 87 D5 --run-> คอมพิวเตอร์ (อ่อให้ปิดเครื่อง)
Q2 : มีวีธีที่จะเปลี่ยนให้มันเป็นภาษาคนที่อ่านออกได้มั้ยครับ
A2 : ใช้การ Decompile ครับ แต่ภาษาคนที่ว่า ก็จะอยู่ในรูปแบบของภาษาคอมพิวเตอร์เช่นพวก C
ซึ่งอ่านได้ แต่ จะเข้าใจหรือไม่อีกเรื่อง
Q3 : ถ้ามีจะต้องทำยังไง , เราสามารถปรับเปลี่ยนแก้ไขได้มั้ย มีผลกับโปรแกรมที่ใช้รึป่าวครับ
A3 : ปกติพวกโปรแกรมเราจะมี source code (ภาษาคอมพิวเตอร์เช่นพวก C) เวลาจะใช้งานจึง compile เป็น executable code (file.exe)
ถ้าจะแก้ไขก็ไปแก้ที่ source code แล้ว compile ใหม่
การแก้ไข exe โดยตรงส่งผลต่อการทำงานทันที ต้องมีความรู้ความเข้าใจเป็นอย่างมาก (อาจเรียกได้ว่าเป็นการ hack/crack โปรแกรม โดยมากออกไปในทางด้านลบเสียมากกว่า) เช่นตัวอย่าง สามารถเปิดและแก้ไข file calc.exe ด้วยโปรแกรม HexEditor หากรู้ตำแหน่ง และ ความหมายข้อมูลก็แก้ไขแล้ว save ได้ (ถ้าไม่รู้แก้ไขมั่ง โปรแกรมอาจเปิดใช้งานไม่ได้ไปเลยน่ะครับ)
แนวที่ง่ายกว่าก็เช่นการ edit พวก save game เช่น เกมให้เงินเริ่มต้นมาน้อย สมมติให้มา 10 ซึ่งก็คือ 0A ถ้าเรารู้ตำแหน่งที่เก็บก็ไปก้ไขเป็น 255 หรือก็คือ FF แล้ว save พอเปิดมาเล่นเกม เราก็จะมีเงินจาก 10 เป็น 255 แทน
Q4 : ถ้าผมสนใจเรื่องเกี่ยวกับโปรแกรมพวกนี้ ผมต้องไปศึกษาที่ไหน หนังสือ เว็บไซต์ ยังไงบ้างครับ
A4 : ด้านไหนล่ะครับ ด้านพัฒนาโปรแกรม ก็เรียนการเขียนโปรแกรม
ด้าน hack/crack ก็คงต้องเรียนเขียนโปรแกรมมาก่อนแหละครับ ... แล้วจะมีหนทางเพื่อให้ค้นพบการปลุกพลังขึ้นมาเองว่าจะเป็น ซิท หรือ เจได เอ้ยไม่ใช่สิ หุหุหุ
Q1 : ตัวหนังสือพวกนี้คืออะไร? , มีไว้เพื่ออะไรครับ
A1 : รหัสคำสั่งสำหรับให้คอมพิวเตอร์อ่าน เพื่อทำงานครับ
แปลจากภาษามนุษย์ (เช่นภาษาโปรแกรมต่าง ๆ เช่นเขียนด้วยภาษา C แล้ว แปล(compile) เป็นภาษาเครื่อง)
เมื่อคอมพิวเตอร์อ่านก็จะเข้าใจและทำงานตามคำสั่งต่าง ๆ ได้
ยกตัวอย่าง สมมติ
ต้องการให้คอมพิวเตอร์ปิด
shutdown ---> คอมพิวเตอร์ (สั่งอะไรไม่เข้าใจ)
shutdown --compile-> FF 0A 87 D5 --run-> คอมพิวเตอร์ (อ่อให้ปิดเครื่อง)
Q2 : มีวีธีที่จะเปลี่ยนให้มันเป็นภาษาคนที่อ่านออกได้มั้ยครับ
A2 : ใช้การ Decompile ครับ แต่ภาษาคนที่ว่า ก็จะอยู่ในรูปแบบของภาษาคอมพิวเตอร์เช่นพวก C
ซึ่งอ่านได้ แต่ จะเข้าใจหรือไม่อีกเรื่อง
Q3 : ถ้ามีจะต้องทำยังไง , เราสามารถปรับเปลี่ยนแก้ไขได้มั้ย มีผลกับโปรแกรมที่ใช้รึป่าวครับ
A3 : ปกติพวกโปรแกรมเราจะมี source code (ภาษาคอมพิวเตอร์เช่นพวก C) เวลาจะใช้งานจึง compile เป็น executable code (file.exe)
ถ้าจะแก้ไขก็ไปแก้ที่ source code แล้ว compile ใหม่
การแก้ไข exe โดยตรงส่งผลต่อการทำงานทันที ต้องมีความรู้ความเข้าใจเป็นอย่างมาก (อาจเรียกได้ว่าเป็นการ hack/crack โปรแกรม โดยมากออกไปในทางด้านลบเสียมากกว่า) เช่นตัวอย่าง สามารถเปิดและแก้ไข file calc.exe ด้วยโปรแกรม HexEditor หากรู้ตำแหน่ง และ ความหมายข้อมูลก็แก้ไขแล้ว save ได้ (ถ้าไม่รู้แก้ไขมั่ง โปรแกรมอาจเปิดใช้งานไม่ได้ไปเลยน่ะครับ)
แนวที่ง่ายกว่าก็เช่นการ edit พวก save game เช่น เกมให้เงินเริ่มต้นมาน้อย สมมติให้มา 10 ซึ่งก็คือ 0A ถ้าเรารู้ตำแหน่งที่เก็บก็ไปก้ไขเป็น 255 หรือก็คือ FF แล้ว save พอเปิดมาเล่นเกม เราก็จะมีเงินจาก 10 เป็น 255 แทน
Q4 : ถ้าผมสนใจเรื่องเกี่ยวกับโปรแกรมพวกนี้ ผมต้องไปศึกษาที่ไหน หนังสือ เว็บไซต์ ยังไงบ้างครับ
A4 : ด้านไหนล่ะครับ ด้านพัฒนาโปรแกรม ก็เรียนการเขียนโปรแกรม
ด้าน hack/crack ก็คงต้องเรียนเขียนโปรแกรมมาก่อนแหละครับ ... แล้วจะมีหนทางเพื่อให้ค้นพบการปลุกพลังขึ้นมาเองว่าจะเป็น ซิท หรือ เจได เอ้ยไม่ใช่สิ หุหุหุ
แสดงความคิดเห็น
อยากทราบว่าตัวหนังสือต่างดาวยึกยือใน Notepad คืออะไรครับ...??
1. ตัวหนังสือพวกนี้คืออะไร? , มีไว้เพื่ออะไรครับ
2. มีวีธีที่จะเปลี่ยนให้มันเป็นภาษาคนที่อ่านออกได้มั้ยครับ
3. ถ้ามีจะต้องทำยังไง , เราสามารถปรับเปลี่ยนแก้ไขได้มั้ย มีผลกับโปรแกรมที่ใช้รึป่าวครับ
4. ถ้าผมสนใจเรื่องเกี่ยวกับโปรแกรมพวกนี้ ผมต้องไปศึกษาที่ไหน หนังสือ เว็บไซต์ ยังไงบ้างครับ
ปล. ผมไม่มีความรู้เรื่องโปรแกรมพวกนี้เลย มีแต่ความสงสัยที่ไม่รู้จะไปถามใคร อย่างน้อยให้ผมมีความรู้เพิ่มสัก 0.1% ก็ยังดีครับ ขอบคุณล่วงหน้าครับ
รูปตัวอย่างตามลิ้งนี้ครับ http://www.cplusplus.com/articles/E8vU7k9E/Strings_found_in_calc.jpg