REA คืออะไร ใช้ยังไง ให้ AI แกะดูการทำงานของแอป
REA เครื่องมือที่ให้ coding agent อ่านการทำงานของแอปที่ติดตั้งอยู่แล้วในเครื่อง พร้อมหลักฐาน ตั้งแต่แอป Electron ไปจนถึงไฟล์ native ติดตั้งด้วยคำสั่งเดียว

ใครใช้ AI เขียนแอปอยู่ เคยเห็นฟีเจอร์ในแอปคนอื่นแล้วอยากได้แบบเดียวกันไหมครับ แต่เราไม่รู้ว่าข้างในเขาทำงานยังไง ไม่มีโค้ดต้นฉบับ และถ้าให้ AI เดาเอง ก็มักได้ของที่ไม่ตรงกับแอปนั้นเลย
บทความนี้พาให้รู้จัก REA (Reverse Engineer Anything) เครื่องมือที่ให้ AI ในเครื่องของเราเข้าไปแกะดูว่าฟีเจอร์หนึ่งทำงานยังไง พร้อมหลักฐานที่เจอ แล้วพาติดตั้งจนพร้อมใช้
REA คืออะไร
REA คือ MCP server กับ CLI ที่ให้ coding agent อย่าง Claude Code, Codex หรือ Cursor ใช้เครื่องมือวิเคราะห์โปรแกรมได้ ลองนึกว่ามันเป็นชุดอุปกรณ์ช่างที่เราต่อเข้ากับ AI เหมือนเอาไขควงกับแว่นขยายให้ AI ถือ ไม่ต้องให้มันเดาจากหน้าตาอย่างเดียว
จุดที่ต่างจากการให้ AI อ่านโค้ดปกติคือ REA ทำงานกับตัวโปรแกรมที่ติดตั้งอยู่แล้วในเครื่อง ไม่ต้องมีไฟล์ซอร์สโค้ดของแอปนั้น ตามที่เขาเขียนในหน้า README ว่า "It can inspect the app without its source code"

REA เป็นโปรเจกต์โอเพนซอร์ส ใช้สัญญาอนุญาต MIT ตอนเปิดหน้า GitHub เมื่อ 12 ต.ค. 2026 มีดาวกว่า 96,000 ดูหน้า repo ได้ที่ลิงก์ท้ายบทความ

ตารางด้านล่างสรุปว่า REA อ่านอะไรได้บ้าง และต้องติดตั้งเครื่องมือเสริมอะไร ข้อมูลมาจาก README และหน้า docs ของโปรเจกต์ ตาม FAQ ของ REA ใช้ผ่าน CLI โดยไม่ต้องมี agent ก็ได้ ส่วนการใช้กับ agent ต้องเชื่อมด้วยคำสั่งติดตั้งด้านล่าง
| ของที่จะแกะ | REA ให้อะไรกลับมา | ต้องมีอะไรเพิ่ม |
|---|---|---|
| แอป JavaScript / Electron | โมดูล การ import เส้นทาง IPC และ native add-on | Node.js กับ npm อย่างเดียว |
| เว็บไซต์ | โครงสร้างหน้า สคริปต์ ข้อมูลเครือข่าย และภาพหน้าจอ | เบราว์เซอร์ตระกูล Chrome |
| ไบนารีแบบ native (ไฟล์ .exe, .dll, ไลบรารี) | pseudocode, assembly, string, symbol, reference | Hopper, Ghidra หรือ IDA |
| ไฟล์ .NET assembly | metadata, CIL และ native dependency | แบบ static ไม่ต้องติดตั้งเพิ่ม |
| APK ของ Android | manifest, class และ method ที่ decompile แล้ว | JADX กับ JDK เต็ม |
ถ้าอยากเริ่มจากสิ่งที่ง่ายที่สุด ให้เริ่มจากแอป JavaScript หรือ Electron เพราะไม่ต้องติดตั้ง engine ของ native เลย ส่วนแกะไฟล์ native ต้องติดตั้ง Hopper, Ghidra หรือ IDA ก่อน
ติดตั้งยังไง
ขั้นที่ 1: เตรียม Node.js
REA ต้องใช้ Node.js เวอร์ชัน 22.19 ขึ้นไป, 24.11 ขึ้นไป หรือ 26 ขึ้นไป ตรวจด้วยคำสั่งนี้
node -v
npm -v
ถ้ายังไม่มี บน macOS ใช้ brew install node หรือ fnm ตามหน้า คู่มือติดตั้ง ของ REA ถ้า Node ที่มากับระบบเก่ากว่า 22.19 ให้อัปเดตก่อน ไม่งั้น setup จะไม่ผ่าน
ขั้นที่ 2: เชื่อม REA เข้ากับ coding agent
รันคำสั่งนี้ในเทอร์มินัล
npx rea-agents@latest setup
ตัว setup จะให้เลือก agent ที่ใช้อยู่ เช่น Claude Code หรือ Codex แล้วแสดงแผนการเปลี่ยนแปลงให้ดูก่อน ระบบบอกว่าจะ backup config เดิมไว้ให้ด้วย ดูแผนให้ครบแล้วค่อยกดอนุมัติ
หลังอนุมัติ ต้องปิดแล้วเปิด agent ใหม่ ถ้าเป็นแอปเดสก์ท็อปให้ quit ให้สนิท แค่ปิดหน้าต่างยังไม่พอ
ขั้นที่ 3: ตรวจว่าพร้อม
หลังเปิด agent ใหม่ ให้ตรวจการเชื่อมต่อด้วยคำสั่งนี้
npx -y rea-agents@latest doctor --client codex --json
ตัวอย่างนี้ใช้ codex ให้เปลี่ยนเป็น client ที่คุณใช้ ถ้า doctor รายงานว่าขาดส่วนไหน ให้รัน setup ซ้ำสำหรับ client นั้น
ขั้นที่ 4: ลองกับแอป JavaScript โดยไม่ต้องให้ agent ช่วย
ถ้าอยากดูผลลัพธ์ก่อนให้ AI ทำงาน ใช้ CLI ตรงๆ ได้ คำสั่งนี้ไม่รันแอป แค่อ่านไฟล์ แต่ต้องแทน path ด้วยโฟลเดอร์แอปจริง หรือไฟล์ .asar ที่อยู่ในโฟลเดอร์ resources ของแอปนั้น
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
ผลลัพธ์เป็น JSON บอกโมดูลในแอป ความเชื่อมต่อระหว่างกัน และตำแหน่งในโค้ด ส่วนที่เชื่อมต่อไม่ได้จะถูกทำเครื่องหมายไว้ ไม่ได้เดาให้
ถ้าอยากติดตั้งคำสั่ง rea ถาวร ใช้ npm install --global rea-agents แล้วรัน rea --help ดูคำสั่งทั้งหมด
ทำอะไรได้บ้าง และต้องเตรียมอะไร
REA ไม่ได้ทำให้เราเขียนแอปเหมือนเขาได้ทันที สิ่งที่มันทำคือช่วยให้ AI ตอบคำถามว่า "ฟีเจอร์นี้ทำงานยังไง" โดยมีหลักฐานกำกับ ตัวอย่างจากหน้า showcase ของ REA มีสองเคส
เคสแรกคือ DX-Ball 1.07 เกมวินโดว์ปี 1996 ทีมเขาให้ REA แกะฟังก์ชันคำนวณการ pan เสียงจากไฟล์ .exe ตามหน้า showcase ฟังก์ชันที่ได้ถูกเขียนใหม่เป็น C แล้วทดสอบเทียบกับต้นฉบับ 3,205 กรณี ตั้งแต่ตำแหน่ง 0 ถึง 640 และหน้าเว็บบอกว่าได้ไบต์ที่คอมไพล์แล้วตรงกับฟังก์ชันเดิม 63 ไบต์ ตรงนี้ต้องดูด้วยว่าตรงกับแค่ฟังก์ชันเดียวที่ทดสอบ ไม่ได้หมายความว่าทั้งเกมเสร็จแล้ว

เคสที่สองคือ Notion Desktop 7.6.1 ซึ่งเป็นแอป Electron หน้า showcase ไล่ให้ดูว่าคำสั่ง clipboard.write ที่หน้าเว็บของ Notion เรียก ไปต่อผ่าน preload และ IPC ไปจนถึงตัวเขียน clipboard ของ Electron ตามลำดับนี้

ก่อนใช้จริง ต้องรู้สามอย่าง
- แอป JavaScript ได้ฟรี ไม่ต้องติดตั้ง engine เพิ่ม แต่ค่าใช้จ่ายของ agent ตามแพ็กเกจที่คุณใช้อยู่
- ไฟล์ native ต้องมี Hopper, Ghidra หรือ IDA ตัว setup เสนอติดตั้ง Hopper ให้ได้ถ้าเราอนุมัติ เวอร์ชันที่รองรับให้ดูในคู่มือของ REA
- เวอร์ชันไม่ตรงกันระหว่างหน้าเว็บกับ npm หน้า showcase ระบุว่าใช้ REA 4.1.0 ส่วน npm ตอนที่เขียนบทความเป็น 6.4.0 ให้ติดตั้ง
@latestแล้วตรวจด้วย doctor ของเครื่องตัวเองเสมอ
ตัวอย่างการสั่ง AI
ตอนที่ agent เชื่อมกับ REA แล้ว ให้บอกเป้าหมายด้วย path จริงและคำถามเดียวที่เจาะจง ตัวอย่างประโยคที่ใช้ได้
- หาที่มาของไฟล์ "ใช้ REA ดูแอปที่
/Users/you/Downloads/notes-appว่าตอนกดปุ่ม Export แล้วไฟล์ CSV ถูกสร้างที่ไหน" - ตามเส้นทางของฟีเจอร์ "ใน
/Users/you/Apps/sample.app/Contents/Resources/app.asarฟีเจอร์บันทึกไฟล์ผ่าน IPC ช่องไหน และ handler อยู่ที่ไฟล์ไหน" - ขอคำอธิบายพร้อมหลักฐาน "อธิบายว่าปุ่มนี้ทำงานยังไง ให้ชี้ไฟล์และบรรทัดที่เป็นหลักฐาน และบอกด้วยว่าส่วนไหนยังยืนยันไม่ได้"
- ขอสร้างของตัวเอง "จากที่แกะได้ ช่วยเขียนฟังก์ชันแบบเดียวกันในโปรเจกต์ของผม โดยไม่คัดลอกโค้ดของแอปนั้น"
ประโยคแบบสุดท้ายสำคัญ ให้ agent เขียนจากความเข้าใจการทำงาน ไม่ใช่ก๊อปโค้ดต้นฉบับมาวาง
ข้อควรระวัง
- ใช้เพื่อเรียนรู้และสร้างของตัวเอง ไม่ใช่ก๊อปหรือเอาของคนอื่นไปขาย ก่อนแกะแอปใดให้อ่านเงื่อนไขการใช้งานของแอปนั้นก่อน เพราะเราไม่ได้ตรวจแทนเขา เรื่องสิทธิ์และเงื่อนไขการใช้ ผู้ใช้ต้องรับผิดชอบเอง
- ผลจากการอ่านแบบ static คือการคาดจากโค้ด REA บอกว่าการอ่าน JavaScript และ .NET แบบ static ไม่ได้รันแอป ถ้าอยากยืนยันว่าตอนรันจริงเป็นอย่างนั้น ต้องใช้ runtime capture ซึ่งจะรันแอปด้วยสิทธิ์ของผู้ใช้เอง
- ผลลัพธ์ที่อยู่ในบทความ เป็นของจริงจากหน้า showcase ของ REA ผมยังไม่ได้รันทดสอบเอง
- ข้อมูลราคาและขีดจำกัดการใช้งานไม่อยู่ในหน้า FAQ หน้า FAQ ของ REA ไม่ได้ระบุราคา rate limit หรือรายการสิ่งที่ทำไม่ได้ ให้ดูที่ repo บน GitHub และคู่มือที่ลิงก์ท้ายบทความ
- การวิเคราะห์ทำในเครื่อง แต่ผลที่ agent ได้รับถูกส่งต่อให้ผู้ให้บริการโมเดล REA ระบุว่าการวิเคราะห์ทำบนเครื่องของเรา ส่วนผลลัพธ์ไปถึงโมเดลของ agent ที่ใช้ ซึ่งมีนโยบายข้อมูลของตัวเอง
- ชื่อ REA ถูกใช้โดยโทเคนอื่น README ระบุว่าโปรเจกต์นี้ไม่ได้ออกหรือรับรองคริปโตหรือโทเคนใดๆ โทเคนที่ใช้ชื่อ REA ไม่เกี่ยวกับโปรเจกต์
สิ่งที่ได้ / ลองต่อ
- ติดตั้งด้วย
npx rea-agents@latest setupแล้วเช็กด้วยdoctor - เริ่มกับแอป JavaScript หรือ Electron ที่เรามีสิทธิ์ใช้งาน ก่อนลองไฟล์ native
- ลองเปิด showcase ทั้งสองเคสแล้วดูว่าหลักฐานถูกเรียงอย่างไร ก่อนให้ agent แกะของของเราเอง
ดูคอร์สทั้งหมดของ ii23 School ได้ที่ คอร์สทั้งหมด หรือดูแพ็กเกจ Pro