ตรวจสอบแอพ "หมอชนะ" เบื้องต้น

Saturday, April 11, 2020 6:38 PM 1 Comments ,

เมื่อวันที่ 10 เมษายน 2563 ได้มีการเปิดตัวแอพ หมอชนะ เพื่อเก็บประวัติการเดินทางของประชาชน และประเมินว่าบริเวณนั้นมีผู้ป่วย COVID-19 หรือไม่ ผมจึงทำการตรวจสอบว่ามีการส่งข้อมูลอะไรบ้างไปยัง Server

รูปจาก https://www.prachachat.net/ict/news-447255


วิธีการตรวจสอบเบื้องต้นคือการทำ Man In The Middle (MITM)

โดยมีการเรียก API ต่างๆดังนี้

1. /registerDevice

โดยมีการส่งข้อมูลเป็น JSON ดังนี้

Request:

{
  "deviceId": "XXXXXXXXXX"
}

โดยค่าใน deviceId น่าจะเป็นค่า hash จากอะไรบางอย่าง

Response:

{
  "userId": "XXXXXXXXXX",
  "anonymousId": "XXXXXXXXXX"
}

2. /userdata

มีการเรียกใช้เมื่อทำแบบทดสอบ

Request:

{
  "data": {
    "questionaire": {
      "one_uri_symp": [
        "none"
      ],
      "travel_risk_country": false,
      "covid19_contact": [
        "none"
      ],
      "int_contact": false
    }
  }
}

3. /qr

เรียกเพื่อโหลด QRCode ของเรา โดยมีการส่ง anonymousId แนบไปกับ header ด้วย


4. /location

อันนี้จะส่งข้อมูลพิกัดที่เราอยู่ไปยัง Server

Request:

{
  "locations": [
    {
      "is_moving": false,
      "uuid": "XXXX",
      "timestamp": "2020-04-11T10:50:50.482Z",
      "odometer": 0,
      "coords": {
        "latitude": 13,
        "longitude": 100,
        "accuracy": 25.9,
        "speed": -1,
        "heading": -1,
        "altitude": -23.5
      },
      "activity": {
        "type": "still",
        "confidence": 100
      },
      "battery": {
        "is_charging": true,
        "level": 0.38
      },
      "extras": {
        "triggerType": "appState"
      }
    }
  ]
}


5. /scan

หากพบ device อื่นๆผ่าน Bluetooth  หรือการ scan QRCode ก็จะส่ง API อันนี้

{
  "meetId": "XXXX",
  "timestamp": "2020-04-11T11:06:53.777Z",
  "meetWithIds": [
    "XXXX"
  ],
  "location": {
    "latitude": 13,
    "longitude": 100,
    "accuracy": 24.2
  },
  "type": "bluetooth"
}

6. https://raw.githubusercontent.com/codeforpublic/morchana-core/master/available

เป็น API Kill-Switch เอาไว้เมื่อเลิกเก็บข้อมูลผู้ใช้แล้ว ก็จะใช้งานแอพไมไ่ด้ ชอบตรงที่เก็บไว้บน Github



สรุป
- ไม่พบว่ามีการส่งรูปที่เราถ่ายขึ้นไปยังบน Server
- ไม่พบว่ามีการส่งข้อมูลอื่นๆนอกเหนือจากที่ประกาศไว้
- งั้นเรามาใช้แอพ หมอชนะ กันเถอะ
Appstore: https://apps.apple.com/th/app/allthaialert/id1505185420
Play Store: https://play.google.com/store/apps/details?id=com.thaialert.app



1 comments:

เปลี่ยนมือถือ Android ให้เป็น Webcam

Friday, April 3, 2020 8:59 PM 0 Comments

เราสามารถเปลี่ยนมือถือ Android ของเราให้เป็น Webcam ง่ายๆได้ด้วยโปรแกรมที่ชื่อว่า DroidCam โดยในตัวอย่างการติดตั้งผมจะทำบนเครื่อง PC ที่ติดตั้งระบบปฏิบัติการ Ubuntu 18.04 สำหรับบน Windows ก็น่าจะติดตั้งคล้ายๆกัน

สิ่งที่ต้องการ
- โทรศัพท์มือ Android
- เครื่องคอมพิวเตอร์
- ระบบ Network


1. ติดตั้ง App บนมือถือ 

สามารถ Download ผ่าน Playstore ได้ที่

https://play.google.com/store/apps/details?id=com.dev47apps.droidcam&hl=th


2. ติดตั้งโปรแกรมที่เครื่องคอม

สามารถ Download โปรแกรมได้ที่

https://www.dev47apps.com/

มีทั้ง Windows และ Linux

เปิด terminal รันคำสั่งดังนี้

sudo apt install linux-headers-`uname -r`
cd tmp
wget https://www.dev47apps.com/files/linux/droidcam_latest.zip
unzip droidcam_latest.zip -d droidcam && cd droidcam
sudo ./install

ดูว่าติดตั้งสำเร็จไหมด้วยคำสั่ง
lsmod | grep v4l2loopback_dc

3. เชื่อมต่อ Droidcam PC กับ มือถือ

PC กับ มือถือ ต้องอยู่ใน Wifi network เดียวกัน

เปิดโปรแกรมบน terminal ด้วยคำสั่ง

droidcam


- เปิดโปรแกรม Droidcam บน Android เพื่อดู IP Address



- นำ Wifi IP: มาใส่ในโปรแกรม Droidcam บนเครื่องคอม แล้วกด Connect



เสร็จสิ้นเรียบร้อย

0 comments:

ทดสอบ Code Highlight

Saturday, March 28, 2020 11:16 PM 0 Comments

ทดสอบ

import time
for i in range(10):
    print('Hello World')
    time.sleep(1)

0 comments: