# เทอร์มินัลในตัว

เทอร์มินัลในตัวเป็นหนึ่งในฟังก์ชันที่ใช้บ่อยใน FIRERPA คุณสามารถเชื่อมต่อกับเทอร์มินัลในตัวเพื่อรันคำสั่งได้แบบเรียลไทม์ เทอร์มินัลในตัวหมายถึงเทอร์มินัลที่คุณเข้าถึงผ่าน Remote Desktop, SSH หรือ ADB ในตัว ซึ่งภายในมีคำสั่งและโมดูล Python ที่ใช้บ่อยติดตั้งมาให้แล้ว คุณสามารถรันคำสั่งหรือโค้ด Python ได้โดยตรง หรือแม้กระทั่งทำการควบคุมอัตโนมัติภายในเทอร์มินัลได้เลย อย่างไรก็ตาม เนื่องจากข้อพิจารณาด้านความเข้ากันได้ เทอร์มินัลที่เชื่อมต่อผ่าน ADB ในตัวจะไม่มีฟังก์ชันบางอย่าง เช่น การแนะนำคำสั่ง เป็นต้น

ตอนนี้โปรดเปิด Remote Desktop หรือเชื่อมต่อเทอร์มินัลผ่าน SSH หรือ ADB ในตัว คุณควรจะเห็นเทอร์มินัลของ Linux การรันคำสั่ง `cd` จะเปลี่ยนไปยังโฮมไดเรกทอรี ซึ่งเป็นพื้นที่ทำงานของคุณที่คุณสามารถจัดเก็บไฟล์ได้ เทอร์มินัลรองรับการเติมคำสั่งให้สมบูรณ์ (command completion) แต่ไม่รองรับการเติมพารามิเตอร์ให้สมบูรณ์ (parameter completion) คุณยังสามารถพิมพ์ส่วนหนึ่งของคำสั่งแล้วใช้ปุ่มลูกศรขึ้น/ลงเพื่อเรียกดูคำสั่งจากประวัติได้

## Alias ที่ใช้บ่อย

Alias คล้ายกับคำสั่ง คุณสามารถใช้ Alias เหล่านี้เพื่อรันคำสั่งที่ใช้บ่อยได้อย่างรวดเร็ว ในเทอร์มินัลในตัวสามารถใช้ Alias ของคำสั่งต่อไปนี้ได้ ซึ่ง Alias และฟังก์ชันของคำสั่งมีดังนี้

| คำย่อ | คำสั่ง |
|--------|------------------------------|
| l | ls |
| ll | ls -l |
| la | ls -la |
| py | python |
| .. | เปลี่ยนไปยังไดเรกทอรีแม่ |
| ... | เปลี่ยนไปยังไดเรกทอรีแม่ของแม่ |
| t | เปลี่ยนไปยัง /data/local/tmp |
| p | เปลี่ยนไปยังไดเรกทอรีล่าสุด |

## คำสั่งที่ใช้บ่อย

คำสั่งที่ใช้งานได้จริงหมายถึงคำสั่ง Linux ที่ใช้บ่อยหรือคำสั่งที่ใช้บ่อยในอุตสาหกรรมที่ติดตั้งมาใน FIRERPA คำสั่งที่รองรับมีดังต่อไปนี้ แน่นอนว่านอกจากคำสั่งที่ระบุไว้ด้านล่างแล้ว คำสั่ง Linux ที่ใช้บ่อยส่วนใหญ่ก็รองรับเช่นกัน แต่เราจะไม่อธิบายซ้ำในรายการต่อไปนี้

| คำสั่ง | คำอธิบาย |
|--------------------|--------------------------------|
| python | Python |
| strace | syscall trace |
| ltrace | libcall trace |
| curl | cURL |
| fsmon | ตรวจสอบการเข้าถึงไฟล์ |
| stunnel | เข้ารหัสทราฟฟิก |
| redir | การส่งต่อพอร์ต |
| scapy | วิเคราะห์ทราฟฟิก |
| iperf3 | ทดสอบประสิทธิภาพเครือข่าย |
| nano | โปรแกรมแก้ไขไฟล์ |
| vi | โปรแกรมแก้ไขไฟล์ |
| ncdu | ค้นหาการใช้งานพื้นที่ดิสก์ของไฟล์ |
| socat | เครื่องมือเครือข่าย |
| sqlite3 | อ่านฐานข้อมูล SQLite, รองรับ wxsqlite, sqlcipher, sqlcrypto |
| tcpdump | วิเคราะห์ทราฟฟิก |
| busybox | ชุดคำสั่ง |
| MemDumper | MemDumper |
| frida | frida-tools |
| frida-ps | frida-tools |
| frida-trace | frida-tools |
| frida-ls-devices | frida-tools |
| frida-discover | frida-tools |
| frida-kill | frida-tools |
| frida-apk | frida-tools |
| frida-create | frida-tools |
| frida-join | frida-tools |


## ไลบรารี Python

นอกจากคำสั่ง Linux ที่ใช้บ่อยข้างต้นแล้ว Python ที่ติดตั้งมาในตัวยังรองรับไลบรารีของบุคคลที่สามที่ใช้บ่อยบางตัวด้วย อาจมีไลบรารีที่ใช้บ่อยบางตัวไม่รวมอยู่ แต่ถ้ามีอยู่คุณยังสามารถอ้างอิงได้

| ชื่อไลบรารี | คำอธิบาย |
|-------------------|--------------------------------|
| Crypto | การเข้ารหัสและถอดรหัส |
| OpenSSL | การเข้ารหัสและถอดรหัส |
| PIL | การประมวลผลภาพ |
| bcrypt | การเข้ารหัสและถอดรหัส |
| brotli | การบีบอัดและคลายการบีบอัด |
| cachetools | การเรียกใช้แคช |
| capstone | เอนจิ้น Disassembly |
| cffi | FFI |
| cryptography | การเข้ารหัสและถอดรหัส |
| cv2 | การประมวลผลภาพ |
| frida | frida |
| gevent | gevent |
| protobuf | protobuf |
| grpc | grpc |
| jinja2 | jinja |
| keystone | เอนจิ้น Assembly |
| lamda | ตัวไลบรารีเอง |
| pyelftools | การแยกวิเคราะห์ ELF |
| lxml | การแยกวิเคราะห์ XML |
| msgpack | Serialization |
| numpy | การคำนวณทางวิทยาศาสตร์ |
| peewee | ORM |
| pyaxmlparser | การแยกวิเคราะห์ APK |
| pyinotify | การตรวจสอบไฟล์ |
| redis | redis |
| requests | requests |
| scapy | วิเคราะห์ทราฟฟิก |
| tornado | เว็บเฟรมเวิร์ก |
| ujson | การแยกวิเคราะห์ JSON |
| unicorn | เอนจิ้นจำลอง CPU |
| websocket | websocket |
| zstd | zstd |

โปรดทราบว่าคุณไม่สามารถติดตั้งไลบรารีเพิ่มเติมผ่าน PIP หรือ APT ในสภาพแวดล้อมของเทอร์มินัลในตัวได้ หากคุณต้องการติดตั้งไลบรารีหรือโปรแกรมอื่น ๆ โปรดดูบทที่เกี่ยวข้องกับ `สภาพแวดล้อม Debian เสมือน` (Virtual Debian Environment) เพื่อใช้งานผ่านสภาพแวดล้อมเสมือน