| Link | Require auth token to download animated sticker? |
| —————————————- | ————————————————-|
| https://emoticon.kakao.com/items/xxxxx
| Not required (Recommended method) |
| https://e.kakao.com/t/xxxxx
| Required |
| kakaotalk://store/emoticon/4404400
| Not required (But no easy way to get it) |
| 4404400
| Not required (But no easy way to get it) |
https://emoticon.kakao.com/items/xxxxx
)https://e.kakao.com/t/xxxxx
which needs auth_token (Authorization header during request). Note that this method may not work in some cases with unclear reasons, so use method 1.sticker-convert
will get auth_token from KakaoTalk Desktop application.GUI:
Generate
button in sticker-convert GUIKakao app path
Get auth_token
and waitCLI:
--kakao-get-auth-desktop
as arguments--kakao-bin-path <KAKAO_APP_PATH>
if you installed KakaoTalk Desktop in non-default locationsticker-convert
will simulate login to Android Kakao app to get auth_token
+447700900142
)GUI:
Generate
button in sticker-convert GUILogin and get auth_token
and follow instructionsCLI:
--kakao-get-auth --kakao-username <YOUR_USERNAME> --kakao-password <YOUR_PASSWORD> --kakao-country-code <YOUR_COUNTRY_CODE> --kakao-phone-number <YOUR_PHONE_NUMBER>
as arguments
--save-cred
to save the auth_token and login information for later useYou can manually get auth_token from rooted Android device (You are recommended to do it on emulated Android device)
cer.cer
mentioned in this guide, use the burp-ca.crt
you created in step 4)adb shell
, su
and /data/local/tmp/frida-server
to start frida-server
on Android Emulatorfrida -U -f com.kakao.talk -l fridascript.js
while frida-server
is runningAuthorization
from header of request seen in BurpSuitehttps://item.kakaocdn.net/dw/4404400.emot_001.webp
. Emoticon ID would be 4404400
Emoticon that are in webp and gif need to be decoded. For Kakao Android application, com/kakao/digitalitem/image/lib/ImageDecode.java
calls libdigitalitem_image_decoder.so
…
nativeWebpImageResizeDecode()
or nativeGifImageDecode()
webpDecode()
or gifDecode()
decryptData()
cryptData()
, which decode emoticon by LFSR and XORIf interested, you may study by decompiling Kakao Android application with jadx
and decompile libdigitalitem_image_decoder.so
with ghidra
.