แงะแอพ QuizClash แบบบังเอิญ

Thursday, November 17, 2016 10:08 PM 8 Comments ,

ช่วงนี้แอพ QuizClash กำลังเป็นที่นิยมในหมู่เพื่อนฝูงจึงได้มีโอกาสโหลดมาเล่นบ้าง ด้วยความบังเอิญขณะนั่งทำ MITM โทรศัพท์ตัวเองอยู่เพื่อที่จะดูว่าแอพ Facebook มันยังใช้ Certificate Pinning อยู่รึเปล่า ปรากฎว่าแอพ Facebook ยังใช้ Certificate Pinning อยู่ แต่มีบางโดเมนที่ไม่ได้ใช้ (Facebook เริ่มใช้ Certificate Pinning ประมาณเดือนตุลาคมปี 2015) ซึ่งขณะที่นั่งทำ MITM อยู่ก็ได้กดเข้าไปเล่นเกมส์ QuizClash และก็ได้พบอะไรบางอย่างเกิดขึ้น . . .

ย้อนกลับไปเมื่อตอนโหลดแอพ QuizClash มาเล่นในทีแรกก็เกิดข้อสงสัยคือทำไมแอพมันโคตรใหญ่จังเลยวะ

Android  ~58 MB
IOS  ~99 MB

ในทีแรกก็คิดว่ามันคงยัดพวกคำถามกับพวกรูปภาพลงไปในแอพเลย ปรากฎว่าไม่ใช่ มันโหลดคำถามและรูปภาพจาก Network ดังภาพ



จากภาพก็จะเห็นว่ามีการใช้ Facebook SDK สำหรับการ Login (เพราะผม Login ด้วย Facebook ในการเล่น)

ตัวเกมส์ก็จะทำการ Login ด้วย Token ของตัวเองด้วยดังภาพ


ที่น่าสนใจคือมีการใช้ HMAC ด้วย น่าจะใช้สำหรับเชคความถูกต้อง Request พูดถึง HMAC แล้วก็คิดถึง Ragnarok

และที่น่าสนใจที่สุดคือ Request นี้


มันคือ Request ในการโหลดคำถามและคำตอบของเกมส์ที่เราเล่นกับเพื่อนคนใดคนหนึ่ง ซึ่ง Response เป็น JSON มีขนาดประมาณ 75KB ตัวอย่าง JSON ก็ดังภาพด้านล่าง 



ซึ่งคำถาม - คำตอบจะไม่มีการเปลี่ยนแปลง ถ้าได้ JSON ไฟล์นี้มาก็จะสามารถตอบคำถามได้ทุกข้อล่ะ 555+

ส่วนแอพที่มีขนาดใหญ่นั้นเมื่อได้ลองแกะดูเบื้องต้นน่าจะมาจาก Resource ไฟล์ภาพนั่นเอง ซึ่งตัวแอพ support หลาย locale เลยต้องมีภาพเยอะตามแต่ละ locale ไปด้วย



จบแล้วครับ

ปล. เพื่อการศึกษาเท่านั้น

8 comments:

Fix Genymotion 2.8 Ubuntu 14.04

Tuesday, November 8, 2016 10:19 AM 0 Comments

Genymotion 2.8.0 thrown error on Ubuntu 14.04

Error:

CXXABI_1.3.8 not found

Solution to solve this problem

LD_LIBRARY_PATH=/usr/local/lib64/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9


Reference
http://stackoverflow.com/questions/37817792/how-to-fix-genymotion-in-linux-elementaryos-with-error-cxxabi-1-3-8-not-found

0 comments:

Ubuntu 14.04 Bluetooth Headset problem

Saturday, October 29, 2016 12:05 PM 3 Comments

Connect blutetooth headset with "Headset Service" after than run

pactl load-module module-bluetooth-discover

 If sound on headset not work perfectly change the profile of headset like in the picture below




3 comments:

ทดลองสร้าง Line @ Bot แบบมั่วๆ

Sunday, October 9, 2016 9:21 PM 57 Comments , ,

Line ได้ออก API สำหรับ Line @ และ Line Official มาได้สักพักนึงแล้วโดยใช้ชื่อว่า Messaging Api ซึ่งวันนี้เพิ่งมีโอกาสได้ลองเล่น API แบบจริงจังเลยมาเขียนบล็อกแชร์ประสบการณ์การใช้งาน API ของ Line ในการสร้าง Chat Bot แบบขำๆขึ้นมา

สิ่งที่ต้องการในการสร้าง Bot

- Server 1 ตัว (ใช้ Ubuntu 14.04)
- Nginx  (ใช้อะไรก็ได้แล้วแต่ถนัด)
- HTTPS ที่ valid cert อันนี้ต้องมีไม่งั้นใช้ไม่ได้ ในที่นี้ใช้ Let's Encrypt (ลองใช้ Cloudflare ที่ใช้ค่า - Default แล้วโดนบล็อกข้อมูลที่ส่งมาจาก Line เลยขี้เกียจหาวิธีแก้)
- PHP 5
- Python 3
ChatterBot (เอาไว้สร้าง Bot Chat)
MongoDB (เอาไว้เก็บข้อมูลของ ChatterBot)
Sample-Line-Bot (https://github.com/kittinan/Sample-Line-Bot)

ติดตั้ง Nginx, php และ config https ไว้ให้พร้อมใช้งาน

Line Messaging API Architecture


ขออนุญาติก็อบรูปใน Line Developer มาให้ดู ซึ่งการทำงานก็ไม่มีไรมาก
เมื่อผู้ใช้ส่งข้อความมาที่ Line @ เรา Line ก็จะส่งข้อความนั้นมายัง Server ที่เราเซตเอาไว้



สมัครใช้งาน Line Messaging API

ตาม Link นี้เลย https://developers.line.me/messaging-api/getting-started ค่อยๆอ่าน แล้วทำตามอย่าข้ามขั้นตอนเด็ดขาด ไม่งั้นปวดหัวสุดๆ

สร้าง Chat Bot ด้วย ChatterBot

Install MongoDB

วิธีการตาม Link นี้เลย https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-14-04


sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
sudo echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

เสร็จสิ้นการลง MongoDB

Install Python 3

ใน Ubuntu 14.04 นั้นลง Python 3 มาไว้อยู่แล้ว โดยแค่ลงเพิ่มอีก 2 package คือ python pip กับ python levenshtein

sudo apt-get install python3-pip python3-levenshtein python3-nltk python3-setuptools

Install ChatterBot ผ่าน python pip

sudo pip3 install chatterbot
sudo python3 -m nltk.downloader -d /usr/local/share/nltk_data brown movie_reviews conll2000 punkt averaged_perceptron_tagger

เมื่อลง Package ที่ต้องการต่างๆเรียบร้อยแล้วให้ clone https://github.com/kittinan/Sample-Line-Bot มายังเครื่อง เพื่อที่เราจะเริ่มทำการ train bot ให้ตอบแชทได้

เมื่อ clone มาเสร็จแล้วให้ไปยัง folder python แล้วรัน

python3 trainer.py sample_conversation.json

โดย sample_conversation.json นั้นเป็นตัวอย่างข้อมูลการสนทนา ถาม-ตอบ ซึ่งอยู่ใน format json array โดยส่วนตัวผมใช้ข้อมูลการ Chat กับเพื่อนใน Facebook ในการ train model ของ chat bot


เมื่อ train model เสร็จแล้วให้ทดสอบว่า chat bot ทำงานได้ถูกต้องโดยการรัน

python3 chat.py "ดีครับ"
python3 chat.py "ชื่อไร"

Bot ก็จะตอบมาดังภาพ


ดูรายละเอียด ChatterBot  เพิ่มเติม ได้ที่ http://chatterbot.readthedocs.io/en/stable/

ประกอบร่าง  Line API กับ ChatterBot

เข้าไป Line Business Center แล้วเข้า Messaging API Developer


ตั้งค่า Webhook URL ให้ชี้มายัง Domain Server ของเรา (Line บังคับให้ใช้ได้เฉพาะ https ที่  valid เท่านั้น) ดังภาพ

แล้ว Copy Channel Access Token มาใส่ในไฟล์ config.yml

แล้ว Install Dependencies ของ code php ให้เรียบร้อย ผ่านทาง composer

composer install

ลองไปคุยกับ bot ใน Line  bot ก็จะตอบข้อความเราตาม model ที่ train ไว้ดังภาพ



ปล.
- กราบขออภัยที่ไม่ได้ลงลึกในรายละเอียดการติดตั้งในส่วนต่างๆ
- คราวหน้าเราจะมาสร้าง model ของ chatbot จาก ข้อความที่เราเคย chat กับเพื่อนใน facebook กัน

57 comments:

วิธีเปิดบอท Rag บนโทรศัพท์ Android

Sunday, September 18, 2016 12:18 AM 2 Comments , , ,

วันนี้จะมาเล่าวิธีการเปิดบอท Rag ในโทรศัพท์นะครับ

สิ่งที่ต้องการ

- เครื่อง Android ที่ลง Linux เรียบร้อย วิธีลงดูได้จากบทความนี้ (วิธีการรัน Linux บนโทรศัพท์ Android)

- Bot Openkore ที่สามารถรันได้ตามปกติบนคอมอยู่แล้ว ในที่นี้ผมใช้ของท่าน Unstle (https://github.com/DunstleOS/openkore/) และใช้ Key ที่ท่าน unknown-item แจกใน tRO Mega Thread

- Firezilla (เอาไว้อัพไฟล์ Bot เข้า Android) หรือถ้าใครใช้ git เป็นก็อัพผ่าน git ก็ได้สะดวกดี


การติดตั้ง

ในที่นี้เลือกใช้ Linux Distribution :  Debian Jessie นะครับ

เปิดโปรแกรม JuiceSSH (ที่ได้ลงไว้ในบทความ วิธีการรัน Linux บนโทรศัพท์ Android) และเชื่อมต่อให้เรียบร้อย

เริ่มการติดตั้ง Package ที่ Bot ต้องการ โดยสามารถดูได้จาก http://openkore.com/index.php/How_to_run_OpenKore โดยผมได้รวบรวมเป็นคำสั่งเดียวดังนี้

sudo apt-get install g++ libreadline6-dev libcurl4-gnutls-dev unzip make libncurses5-dev -y

ภาพเมื่อลง Package ที่ Bot ต้องการเสร็จ


เมื่อติดตั้งเสร็จแล้วเราจะอัพ Bot เข้า Android

วิธีการอัพไฟล์ด้วย Filezilla

เราจะใช้ Filezilla อัพ Bot เข้า Android โดยไปที่ File > Site Manager กด New Site แล้วตั้งชื่อไรก็ได้ในที่นี้ตั้งว่า Android

Host: ใส่ ip ของ Android
Port: 22
Protocol: SFTP
Logon Type: Normal
Username: android
Password: changeme (หรือตามที่ท่านตั้งไว้)

เมื่อใส่ข้อมูลเรียบร้อยแล้วกด Connect แล้วจะมี dialog เด้งขึ้นมา ให้ติ๊ก Always trust this host แล้วกด OK แล้วให้เข้า Edit > Setting > Transfers ใส่ Maximum simultaneous transers เป็น 10 เพื่อเพิ่มความเร็วในการอัพโหลด





เสร็จแล้วลาก Folder Bot ฝั่งซ้ายมือไปยังฝั่งขวามือดังภาพ



เมื่ออัพไฟล์ Bot เสร็จแล้วให้กลับมาที่โทรศัพท์ เพื่อสั่งรันบอท

ls -l  <<< ดู ไฟล์ใน Folder ที่อยู่ปัจจุบัน
cd opk-unstle  <<< เปลี่ยน Folder ไปยัง Bot ในที่นี้ชื่อ folder คือ opk-unstle
perl openkore.pl <<< รันบอท รันครั้งแรกบอทจะ compile code ก่อน ก็รอสักพัก


ภาพ Bot ขณะ Compile


เมื่อ Compile บอทเรียบร้อย Bot ก็จะทำงานแล้วดังภาพ





เสร็จสิ้นการ Bot บน Android


2 comments:

วิธีการรัน Linux บนโทรศัพท์ Android

Saturday, September 17, 2016 1:20 PM 1 Comments ,

สิ่งที่ต้องมี

- โทรศัพท์ Android ที่ root แล้ว (ซึ่งแต่ละรุ่นวิธีการ root ไม่เหมือนกันต้องไปหาวิธีกันเอง)

- พื้นที่เหลือในเครื่องสักประมาณ 4 GB


วิธีการติดตั้ง

- ติดตั้ง แอพ Linux Deploy (https://play.google.com/store/apps/details?id=ru.meefik.linuxdeploy)

- ติดตั้ง แอพ BusyBox (https://play.google.com/store/apps/details?id=ru.meefik.busybox) ต้องเป็น BusyBox ตัวนี้นะ ตัวอื่นจะใช้ไม่ได้ครับ

- ติดตั้ง แอพ JuiceSSH (https://play.google.com/store/apps/details?id=com.sonelli.juicessh) ไว้สำหรับ Remote เข้า Linux


หลังจากติดตั้งแอพด้านบนครบแล้ว

ติดตั้ง BusyBox

- เปิดแอพ BusyBox กด Install แอพ BusyBox มันจะขอ สิทธิ์ root ก็ให้มันไป



ติดตั้ง Linux

- เปิดแอพ Linux Deploy แล้วกดตรงรูป Download ตามรูป


- เลือก Distribution ที่ต้องการ ในที่นี้เลือกใช้ Debian ครับ Distribution suite ก็คือ version ของ Distribution นั้นๆ ผมเลือกใช้ Debian Jessie ส่วน Architecture ก็เลือกเป็น armhf ดังรูป



- กด Install แล้วก็รอสักพักใหญ่ ตัวแอพมันจะไปโหลด Package ต่างๆมาลงให้ (รอนานมาก ขึ้นอยู่กับเน็ตและความเร็วเครื่องแต่ละคน)



- ถ้าเกิด Error แล้วลงไม่สำเร็จต้องลงใหม่ โดยการกด STOP แล้วเข้ารูป Download ไปกด Install ใหม่ครับ

ภาพโหลดไฟล์ไม่สำเร็จ ต้องกดลงใหม่


- เมื่อติดตั้งเสร็จแล้วให้กด START เป็นอันเสร็จสิ้นแล้ว เราก็สามารถ remote ไปยังตัว Linux ที่เราลงได้ผ่านทาง SSH หรือ VNC ครับ


การ Remote SSH บนมือถือ

ผมใช้แอพ JuiceSSH ในการเชื่อมต่อครับ วิธีการใช้งาน JuiceSSH ก็ง่ายมากแค่เซต host, user, password มาเริ่มกันเลย

- เปิดแอพ JuiceSSH เข้า Connections แล้วกด ปุ่ม + ขวาล่าง





Nickname : แล้วแต่เราจะตั้ง
Type: SSH
Address: localhost
Identity: จิ้มเข้าไปกด New
             Nickname: แล้วแต่เราจะตั้ง
             Username: android
             Password: changeme

เมื่อจิ้มไปที่ Identity เลือก New

ภาพเซต Identity เสร็จ (ในภาพพิมพ์ localhost ผิดนะ)


กด เครื่องหมายถูกขวาบนเพื่อเซฟ แล้วก็สามารถ Connect เข้าไปยัง Linux ที่เราลงไว้ได้เลยดังภาพ





1 comments:

How to install Ubuntu 14.04 on Asus K401UB

Sunday, April 3, 2016 4:07 PM 3 Comments , , , ,

I lost a few days for install Ubuntu 14.04 on my new laptop Asus K401UB.

Asus K401UB have Hard drive 1 TB and 24 GB SSD, So i install partition like this

/dev/sda is 1 TB Hard drive
/dev/sdb is 24 GB SSD



mount /boot on SSD (256MB)
mount / on SSD (Remain SSD)
mount /home on 1TB Hard drive (200 GB)
mount /var on 1TB Hard drive (50GB)

After i installed Ubuntu 14.04 i got many problem out of the box

Problem:

- Audio not work
- Touchpad not work
- Wifi not work (Network Manager show locked by hardware lock)
- Some of Function Key not work (Airplane mode, Brightness, Touchpad Enable/Disable) not work
- Hybridge Video Graphic Card (Intel & Geforce 940M)

Solve the problem:


Audio & Touchpad 
Audio & Touchpad solved by install newer kernel  (https://wiki.ubuntu.com/Kernel/LTSEnablementStack)

sudo apt-get install --install-recommends linux-generic-lts-wily xserver-xorg-core-lts-wily xserver-xorg-lts-wily xserver-xorg-video-all-lts-wily xserver-xorg-input-all-lts-wily libwayland-egl1-mesa-lts-wily 

After install & reboot Audio and Touchpad work fine.

Wifi
I found 2 choice to solved wifi work.

1. fn + F1 to sleep laptop, when laptop wake up wifi will work
2. Uninstall Network Manager and install wicd instead

sudo apt-get install wicd-gtk
sudo apt-get purge network-manager-gnome network-manager

reboot your laptop, wifi will work

Function key
i can't solve this problem but i found shell script to disable and enable Touchpad

- Find Device id from command (in this case device is ELAN1000:00 04F3:0401)

xinput list


id = 12

Download this shell script



Replace id with your Touchpad id in this case is  12, this script will toggle your Touchpad Enable/Disable

Video Graphic

I try many solution to solve VGA swiching but nothing work. I decided to use Bumblebee to run Geforce 940M when i need it

https://wiki.ubuntu.com/Bumblebee

Update 2016-04-06
fn key + brighness down/up (F5 & F6) will work when edit config grub

Edit this file /etc/default/grub

Find this line:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Change to

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force acpi_osi="

Ref:
https://wiki.ubuntu.com/Kernel/LTSEnablementStack
http://ubuntuforums.org/showthread.php?t=2141992
http://askubuntu.com/
https://wiki.ubuntu.com/Bumblebee


PS. I'm using Mate Desktop for Desktop Environment.

Hopefully this blog can help you.


3 comments:

How to compile aircrack Ubuntu 14.04

1:33 PM 0 Comments

Install Dependencies


sudo apt-get install build-essential libssl-dev libnl-3-dev libnl-genl-3-dev dpkg-dev g++ g++-4.8 libc-dev-bin libc6-dev libstdc++-4.8-dev zlib1g-dev debian-keyring g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg glibc-doc libstdc++-4.8-doc libalgorithm-merge-perl libssl-doc libalgorithm-diff-xs-perl


Download and compile

cd /tmp
wget http://download.aircrack-ng.org/aircrack-ng-1.2-rc4.tar.gz
tar xfz aircrack-ng-1.2-rc4.tar.gz
cd aircrack-ng-1.2-rc4/
make
sudo make install
sudo airodump-ng-oui-update


0 comments:

Install Raspbian packages directly from Ubuntu with chroot to Raspbian file system (on SD card)

Saturday, March 12, 2016 7:57 PM 0 Comments

update or install package directly from ubuntu on raspbian sd card

sudo apt-get install qemu proot
sudo proot -q qemu-arm -B -r /mnt/path/to/raspbian/

source : http://raspberrypi.stackexchange.com/questions/23675/install-raspbian-packages-directly-from-ubuntu-with-chroot-to-raspbian-file-syst

0 comments:

[GIT] Specify git author and email

Sunday, March 6, 2016 6:36 PM 0 Comments

go to your project path

git config user.name "YOUR_NAME_ON_PROJECT"
git config user.email "YOUR_EMAIL_ON_PROJECT"

Done.

0 comments:

Raspberry Pi fix screen blank when idle a few minute

Monday, February 15, 2016 9:20 PM 0 Comments ,


run this command as root
echo -ne "\033[9;0]" >/dev/tty1

0 comments: