오랜만에 카카오톡 분석과 함께 loco 통신을 후킹으로 가져와서 출력해보았다.
마지막으로 카톡을 분석한게 9.8버전때였나.. 기억도 가물가물한데,
벌써 10.9.0이다.
다른건 별 관심이 없었지만 Loco 구현체 관련해서 변경사항이 있나 찾아보았다.
기존의 LocoClient는 request와 response 함수가 LocoClient 내부에 분리되어있던 거로 기억한다.
지금은 좀 바꼈더라.
LocoClient의 한 함수에서 간편하게 req/res를 받아올수 있게 되었다.
덕분에 후킹도 더 깔끔해졌다.
프로토콜이 특별히 바뀐건.. 없어보인다.
간단한 frida 후킹 예제 스크립트를 첨부한다.
Java.perform(function () {
try {
var locoClient = Java.use("com.kakao.talk.loco.net.server.LocoClient");
console.log("[+] Found LocoClient Class!");
hookSession(locoClient);
console.log("[+] Hooked LocoClient Class!");
} catch (error) {
console.log(error);
}
});
function printPacket(packet) {
console.log("[+] - Method: ", packet._a.value.c.value.toString());
console.log(
"[+] - Body:",
packet.c.value.toString()
);
}
function hookSession(locoClient) {
locoClient.o.implementation = function (locoReq) {
console.log("[+] Request!");
printPacket(locoReq);
const time = Date.now();
const locoRes = this.o(locoReq);
console.log("[+] Response! (" + (Date.now() - time) + "ms)");
printPacket(locoRes);
return locoRes;
};
}
'리버싱' 카테고리의 다른 글
아오오니 레전드 (2014) 분석 #1 (0) | 2024.06.22 |
---|---|
Firefox cookie, local storage 추출 (0) | 2024.04.26 |
ld.exe 분석 (0) | 2024.04.25 |
[Zeta] 대화하기 (0) | 2024.04.22 |
[Zeta] OAuth token 추출 (0) | 2024.04.22 |