KUWIN Autologin

ผมเห็นรุ่นพี่หลายคนทำ KUWIN autologin ไว้หลายตัว @nattster on Android Firefox Standalone แต่เหมือนว่าจะโดน CAPTCHA ติดเลยใช้ไม่ได้ (หรือเปล่า ผมไม่ได้ลอง)

ทีนี้หน้า Login KUWIN เนี่ย จะเป็น CAPTCHA บวกเลขครับ ผมเดาๆ อยู่นะว่ามันมีทางแกะได้ ไว้ไม่มีไรทำจริงๆ (แปลว่าชาติหน้า) จะลองแกะดูเพราะมันดูง่าย ทีนี้ผมเป็นคนบวกเลขในใจไม่ได้ เจอสองหลักมีทดเปิด terminal รัน bc คิดอย่างเดียว บังเอิญผมเจอกับ KUWIN Tools บน Android ซึ่งเป็น Official apps เลยก็เลยสงสัยว่ามันทำยังไง แอพทางการไม่น่าจะใช้วิธีแกะ CAPTCHA

เอาล่ะ ได้เวลาแฮค!

ก่อนอื่นเลยก็ต้องมี APK มันก่อนครับ ก็สอยกลับมาง่ายๆ ด้วย adb pull โง่ๆ ทีนึง เสร็จแล้วผมก็ Google ต่อ ว่าจะทำอะไรกับมันดี เอาเป็นว่า decompile ละกัน

Google แนะนำคำถามนี้ มาให้ผมซึ่งก็ตรงเป๊ะ คือ โหลด dex2jar มาแก้เป็น jar แล้วใช้ jd-gui แก้กลับเป็น Java ก็ลุยสิครับ

Screen Shot 2556-09-14 at 11.29.40 PM

ผมเดาว่าโค้ดต้องสงสัยอยู่ไม่ใกล้ไม่ไกลอยู่นี่แหละ แต่โค้ดมันแก้ตัวแปรนิดๆ แล้วมีเมธอดนี้หลายอันแต่หลาย signature ผมไม่แน่ใจ เลยตัดสินใจว่าจะเล่นมุกเดิมอีกคือ Privoxy ขาประจำ แต่ทว่า…

Screen Shot 2556-09-14 at 11.31.32 PM

มันมีเส้นกั้นบางระหว่างผมกับปลายทาง ผมเห็น mobile.php ขึ้นหรา นั่นคือคำตอบผมแน่ๆ แต่ผมจะรู้ได้ยังไงว่าจะส่งอะไรเข้าไป และตอนนี้กำแพงระหว่างผมกับมันคือตัว s เพียงตัวเดียวที่อยู่ในคำว่า https

เอาวะ!

ด้วยความที่ผมยังไม่อยากจะอ่าน Java มั่วๆ นั่น ผมเลยตัดสินใจว่าเรามาอ่าน assembly (หรือให้ถูกคือ smali) ดีกว่า

Screen Shot 2556-09-14 at 11.34.55 PM

เข้าใจง่ายกว่า Java สิบเท่า gg…

ยังสิ ผมตัดสินใจว่าแก้ก็แก้วะ ก็เลยเดาไปเดามาสองสามที สุดท้ายแทบจะ rewrite method ตัวนั้นใหม่ให้เหลือ string เดียว (เหมือนจะก๊อปจากเมธอดอื่นมา) แล้วก็ได้ตามต้องการ โค้ดจะส่งข้อมูลไปหาเว็บผมแทน ผมลงแอพที่โมในมือถือทันทีและรัน ไม่นานก็ได้ข้อมูลที่ต้องการ ไม่ต้องพึ่ง Privoxy


ตอนนี้ protocol mobile.php ก็แกะมาได้พอสมควรแล้วครับ เลยทำเป็น extension KUWIN Autologin ขึ้นมา ก็เข้าไปดาวน์โหลดใช้ได้ เวลาเข้าเว็บอะไรมันจะดีดขึ้นมาว่า logging in แล้วก็ logged in ให้เข้าเว็บนั้นอีกทีก็เข้าได้เลยโดยไม่ต้องใส่รหัสผ่าน

(Chrome มันไม่มี API wifi connect อะนะครับเลยทำ auto login แบบไม่ต้องกดอะไรเลยไม่ได้ ผมจะ hold request คาไว้จนกว่าจะ login เสร็จก็ไม่ได้เพราะ sync request มันห้าม AJAX กลัวเกิด circular ซ้อนกันไปมา)

สำหรับหน้า settings ผมขี้เกียจทำก็เลยฝากเพื่อนทำ เพื่อนก็ฝากพี่ทำมาให้แบบที่เห็น ตอนแรกเป็น Comic Sans ผมเห็นแล้วปวดใจเลยแก้ๆ ได้เท่านี้ ไว้รุ่นหน้าอยากเพิ่มฟีเจอร์แล้วจะมาทำเอง (ว่าจะใส่ bandwidth log น่ะครับ)

Okay, KUWIN fixed. Next stop: nisit.kasetsart.org…