대회에서는 FTK Imager로 이미지 딴 ad1 파일을 제공한다.
우선 본인은 FTK로 마운팅하고 다시 이미지를 생성해서 Autopsy로 불러들었다.
1. 공격자가 탈취한 정보를 전송한 서버의 IP를 구해라
2. 공격자가 "특별히" 노리고 있는 웹사이트의 도메인을 구해라
3. 2번에서 구한 도메인에서 사용중인 John의 계정을 찾아라 (형식: username_password)Flag 형식: cce2025{ans1_ans2_ans3}
3개의 정답을 알아야 플래그를 넣을 수 있다. 우선 차근차근 진행해보자
디지털 포렌식 과제였으면 이미지와 아티팩트 분석을 철저히 했겠지만, CTF라 빠르게 중점적인 것만 보았다.
이미지 분석 (축약)
숨김 표시했습니다. 접어서 펼치면 읽을 수 있습니다.
브라우저 History(/ad1/AppData/Local/Google/Chrome/User Data/Default/History)

브라우저 History를 보면 다운로드 기록이 다음과 같이 존재한다.
- ad_blocker.zip (에드블럭 설치)
- DiscordSetup.exe (디스코드 설치)
- tsetup-x64.6.0.2.exe (텔레그램 설치)
2025-08-09 14:47:56 — Telegram Web (telegram.org) — https://web.telegram.org/
2025-08-09 14:47:56 — Telegram Web (telegram.org) — https://web.telegram.org/
2025-08-09 14:48:01 — Telegram (telegram.org) — https://web.telegram.org/a/
2025-08-09 14:48:01 — Telegram (telegram.org) — https://web.telegram.org/a/
2025-08-09 14:48:06 — telegram - Google 검색 (google.com) — https://www.google.com/search?q=telegram&oq=telegram&gs_lcrp=EgZjaHJvbWUqDwgAEAAYQxjJAxiABBiKBTIPCAAQABhDGMkDGIAEGIoFMgwIARAAGEMYgAQYigUyDQgCEAAYgwEYsQMYgAQyDAgDEAAYQxiABBiKBTIMCAQQABhDGIAEGIoFMgcIBRAAGIAEMgcIBhAAGIAEMgcIBxAAGIAEMg0ICBAAGJIDGIAEGIoFMgcICRAAGIAE0gEIODQ4NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-09 14:48:06 — telegram - Google 검색 (google.com) — https://www.google.com/search?q=telegram&oq=telegram&gs_lcrp=EgZjaHJvbWUqDwgAEAAYQxjJAxiABBiKBTIPCAAQABhDGMkDGIAEGIoFMgwIARAAGEMYgAQYigUyDQgCEAAYgwEYsQMYgAQyDAgDEAAYQxiABBiKBTIMCAQQABhDGIAEGIoFMgcIBRAAGIAEMgcIBhAAGIAEMgcIBxAAGIAEMg0ICBAAGJIDGIAEGIoFMgcICRAAGIAE0gEIODQ4NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-09 14:48:06 — telegram - Google 검색 (google.com) — https://www.google.com/search?q=telegram&oq=telegram&gs_lcrp=EgZjaHJvbWUqDwgAEAAYQxjJAxiABBiKBTIPCAAQABhDGMkDGIAEGIoFMgwIARAAGEMYgAQYigUyDQgCEAAYgwEYsQMYgAQyDAgDEAAYQxiABBiKBTIMCAQQABhDGIAEGIoFMgcIBRAAGIAEMgcIBhAAGIAEMgcIBxAAGIAEMg0ICBAAGJIDGIAEGIoFMgcICRAAGIAE0gEIODQ4NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-09 14:48:06 — telegram - Google 검색 (google.com) — https://www.google.com/search?q=telegram&oq=telegram&gs_lcrp=EgZjaHJvbWUqDwgAEAAYQxjJAxiABBiKBTIPCAAQABhDGMkDGIAEGIoFMgwIARAAGEMYgAQYigUyDQgCEAAYgwEYsQMYgAQyDAgDEAAYQxiABBiKBTIMCAQQABhDGIAEGIoFMgcIBRAAGIAEMgcIBhAAGIAEMgcIBxAAGIAEMg0ICBAAGJIDGIAEGIoFMgcICRAAGIAE0gEIODQ4NGowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-09 14:48:09 — Telegram Desktop (telegram.org) — https://desktop.telegram.org/?setln=en
2025-08-09 14:48:09 — Telegram Desktop (telegram.org) — https://desktop.telegram.org/?setln=en
2025-08-09 14:49:33 — discord - Google 검색 (google.com) — https://www.google.com/search?q=discord&oq=discord&gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBBzkwMWowajSoAgCwAgE&sourceid=chrome&ie=UTF-8
2025-08-09 14:49:33 — discord - Google 검색 (google.com) — https://www.google.com/search?q=discord&oq=discord&gs_lcrp=EgZjaHJvbWUyBggAEEUYOdIBBzkwMWowajSoAgCwAgE&sourceid=chrome&ie=UTF-8
2025-08-09 14:49:34 — Discord - Group Chat That’s All Fun & Games (discord.com) — https://discord.com/
2025-08-09 14:49:34 — Discord - Group Chat That’s All Fun & Games (discord.com) — https://discord.com/
2025-08-09 14:49:42 — Download Discord to Talk, Play, and Hang Out (discord.com) — https://discord.com/download
2025-08-09 14:49:42 — Download Discord to Talk, Play, and Hang Out (discord.com) — https://discord.com/download
2025-08-09 15:08:31 — (authentications.com) — https://authentications.com/
2025-08-09 15:08:31 — (authentications.com) — https://authentications.com/
2025-08-09 15:11:55 — Document (social-connect1.com) — http://social-connect1.com/signin
2025-08-09 15:11:55 — Document (social-connect1.com) — http://social-connect1.com/signin
2025-08-09 15:11:55 — Document (social-connect1.com) — http://social-connect1.com/signin
2025-08-09 15:11:55 — Document (social-connect1.com) — http://social-connect1.com/signin
2025-08-09 15:11:55 — Document (social-connect1.com) — https://social-connect1.com/signin
2025-08-09 15:11:55 — Document (social-connect1.com) — https://social-connect1.com/signin
2025-08-09 15:12:28 — (social-connect1.com) — http://social-connect1.com/
2025-08-09 15:12:28 — (social-connect1.com) — http://social-connect1.com/
2025-08-09 15:13:15 — (videostreamcast.net) — https://videostreamcast.net/
2025-08-09 15:13:15 — (videostreamcast.net) — https://videostreamcast.net/
2025-08-09 15:13:47 — Document (videostreamcast.net) — http://videostreamcast.net/signup
2025-08-09 15:13:47 — Document (videostreamcast.net) — http://videostreamcast.net/signup
2025-08-09 15:13:47 — Document (videostreamcast.net) — http://videostreamcast.net/signup
2025-08-09 15:13:47 — Document (videostreamcast.net) — http://videostreamcast.net/signup
2025-08-09 15:13:49 — Document (videostreamcast.net) — http://videostreamcast.net/signin
2025-08-09 15:13:49 — Document (videostreamcast.net) — http://videostreamcast.net/signin
2025-08-09 15:13:49 — Document (videostreamcast.net) — http://videostreamcast.net/signin
2025-08-09 15:13:49 — Document (videostreamcast.net) — http://videostreamcast.net/signin
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:13:57 — (videostreamcast.net) — http://videostreamcast.net/
2025-08-09 15:14:31 — base64encode - Google 검색 (google.com) — https://www.google.com/search?q=base64encode&oq=base64encode&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgcIARAAGIAEMgcIAhAAGIAEMgcIAxAAGIAEMgcIBBAAGIAEMgcIBRAAGIAEMgcIBhAAGIAEMgkIBxAAGAoYgAQyBwgIEAAYgAQyBwgJEAAYgATSAQgyOTk5ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8
2025-08-09 15:14:31 — base64encode - Google 검색 (google.com) — https://www.google.com/search?q=base64encode&oq=base64encode&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgcIARAAGIAEMgcIAhAAGIAEMgcIAxAAGIAEMgcIBBAAGIAEMgcIBRAAGIAEMgcIBhAAGIAEMgkIBxAAGAoYgAQyBwgIEAAYgAQyBwgJEAAYgATSAQgyOTk5ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8
2025-08-09 15:14:48 — Base64 인코딩 및 디코딩 - 온라인 (base64encode.org) — https://www.base64encode.org/ko/
2025-08-09 15:14:48 — Base64 인코딩 및 디코딩 - 온라인 (base64encode.org) — https://www.base64encode.org/ko/
2025-08-09 15:14:48 — Base64 인코딩 및 디코딩 - 온라인 (base64encode.org) — https://www.base64encode.org/ko/
2025-08-09 15:14:48 — Base64 인코딩 및 디코딩 - 온라인 (base64encode.org) — https://www.base64encode.org/ko/
2025-08-09 15:14:54 — Base64 디코딩 및 인코딩 - 온라인 (base64decode.org) — https://www.base64decode.org/ko/
2025-08-09 15:14:54 — Base64 디코딩 및 인코딩 - 온라인 (base64decode.org) — https://www.base64decode.org/ko/
2025-08-09 15:14:54 — Base64 디코딩 및 인코딩 - 온라인 (base64decode.org) — https://www.base64decode.org/ko/
2025-08-09 15:14:54 — Base64 디코딩 및 인코딩 - 온라인 (base64decode.org) — https://www.base64decode.org/ko/
2025-08-09 15:15:34 — youtube - Google 검색 (google.com) — https://www.google.com/search?q=youtube&oq=youtube&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyDQgBEC4YgwEYsQMYgAQyDQgCEAAYgwEYsQMYgAQyDQgDEAAYgwEYsQMYgAQyCggEEAAYsQMYgAQyDQgFEAAYgwEYsQMYgAQyBwgGEAAYgAQyDQgHEAAYgwEYsQMYgAQyBwgIEC4YgATSAQgzNDc3ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8
2025-08-09 15:15:34 — youtube - Google 검색 (google.com) — https://www.google.com/search?q=youtube&oq=youtube&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyDQgBEC4YgwEYsQMYgAQyDQgCEAAYgwEYsQMYgAQyDQgDEAAYgwEYsQMYgAQyCggEEAAYsQMYgAQyDQgFEAAYgwEYsQMYgAQyBwgGEAAYgAQyDQgHEAAYgwEYsQMYgAQyBwgIEC4YgATSAQgzNDc3ajBqN6gCALACAA&sourceid=chrome&ie=UTF-8
2025-08-09 15:15:59 — Kanye west - YouTube (youtube.com) — https://www.youtube.com/results?search_query=Kanye+west
2025-08-09 15:15:59 — Kanye west - YouTube (youtube.com) — https://www.youtube.com/results?search_query=Kanye+west
2025-08-09 15:17:33 — Document (videostreamcast.net) — http://videostreamcast.net/video
2025-08-09 15:17:33 — Document (videostreamcast.net) — http://videostreamcast.net/video
2025-08-09 15:17:33 — Document (videostreamcast.net) — http://videostreamcast.net/video
2025-08-09 15:17:33 — Document (videostreamcast.net) — http://videostreamcast.net/video
2025-08-09 19:38:45 — Document (authentications.com) — http://authentications.com/login
2025-08-09 19:38:45 — Document (authentications.com) — http://authentications.com/login
2025-08-09 19:38:45 — Document (authentications.com) — http://authentications.com/login
2025-08-09 19:38:45 — Document (authentications.com) — http://authentications.com/login
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:38:57 — (authentications.com) — http://authentications.com/
2025-08-09 19:39:44 — (friendhub-online.io) — https://friendhub-online.io/
2025-08-09 19:39:44 — (friendhub-online.io) — https://friendhub-online.io/
2025-08-09 19:39:48 — Document (friendhub-online.io) — http://friendhub-online.io/signup
2025-08-09 19:39:48 — Document (friendhub-online.io) — http://friendhub-online.io/signup
2025-08-09 19:40:04 — Document (friendhub-online.io) — http://friendhub-online.io/signin
2025-08-09 19:40:04 — Document (friendhub-online.io) — http://friendhub-online.io/signin
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:40:08 — (friendhub-online.io) — http://friendhub-online.io/
2025-08-09 19:44:07 — Document (credential-vault.io) — https://credential-vault.io/auth/login
2025-08-09 19:44:07 — Document (credential-vault.io) — https://credential-vault.io/auth/login
2025-08-09 19:45:47 — (streamverse.io) — https://streamverse.io/
2025-08-09 19:45:47 — (streamverse.io) — https://streamverse.io/
2025-08-09 19:46:04 — Document (streamverse.io) — http://streamverse.io/auth/login
2025-08-09 19:46:04 — Document (streamverse.io) — http://streamverse.io/auth/login
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:46:33 — (streamverse.io) — http://streamverse.io/
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/InteractiveLogin?continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ&hl=ko&passive=true&ifkv=AdBytiOygkYXgZzbIVnjsy7MT2PnQ_uReD1HVjlRPZDLXhO2LXUR8oWQjthyegxELbQQeuT6KwXH-Q
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/InteractiveLogin?continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ&hl=ko&passive=true&ifkv=AdBytiOygkYXgZzbIVnjsy7MT2PnQ_uReD1HVjlRPZDLXhO2LXUR8oWQjthyegxELbQQeuT6KwXH-Q
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/ServiceLogin?hl=ko&passive=true&continue=https://www.google.com/search%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/ServiceLogin?hl=ko&passive=true&continue=https://www.google.com/search%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ&hl=ko&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&passive=true&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S521353416%3A1754736428817325
2025-08-09 19:47:08 — 로그인 - Google 계정 (google.com) — https://accounts.google.com/v3/signin/identifier?continue=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&ec=GAZAAQ&hl=ko&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&passive=true&flowName=GlifWebSignIn&flowEntry=ServiceLogin&dsh=S521353416%3A1754736428817325
2025-08-09 19:47:29 — 시작하기 (google.com) — https://accounts.google.com/v3/signin/challenge/pwd?TL=ALgCv6y9GlkYRvbYk7witmAETSZ3wShjymzra5uod9U-ZaDzG09CdM7tS-lctW-y&checkConnection=youtube%3A400&checkedDomains=youtube&cid=1&continue=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&dsh=S521353416%3A1754736428817325&ec=GAZAAQ&flowEntry=ServiceLogin&flowName=GlifWebSignIn&hl=ko&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&pstMsg=1
2025-08-09 19:47:29 — 시작하기 (google.com) — https://accounts.google.com/v3/signin/challenge/pwd?TL=ALgCv6y9GlkYRvbYk7witmAETSZ3wShjymzra5uod9U-ZaDzG09CdM7tS-lctW-y&checkConnection=youtube%3A400&checkedDomains=youtube&cid=1&continue=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&dsh=S521353416%3A1754736428817325&ec=GAZAAQ&flowEntry=ServiceLogin&flowName=GlifWebSignIn&hl=ko&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&pstMsg=1
2025-08-09 19:47:41 — google - Google 검색 (google.co.kr) — https://accounts.google.co.kr/accounts/SetSID?ssdc=1&sidt=ALWU2cuo3SvChMvgsFVYu1q5lkZIcMgX4zUPuFK4l8jPo2iFxtGBWnZm%2B3/GpbgdWvUajkj8IaoSPS8aBI9j4oCZkoXjIZu/AFvBndkrvhoiRH0S7EJDPj9C9ZqM%2BJ4/35TYfKHCVDWrZ/EFYHDjfhTxUezkgH4gBzOp3MY4/IzgW82HHTA8lAYpMyhJiaRCFIqChVTwvOk9rbytoRHhWUcO2/JjGFDnIkZHAoY3eeFZO0HZ%2Bp%2BrNjneDc1NVhQgc5CNFPxCuIYPmoq24w03MiIkLtytEEgtohSkseTCpb28Jfl5xpeEasdtJtI4vX2j98kCzN0hJXKBW4sCbI/vOKnif8kfKj3LWIzelYzklqxH3idsFnySYY07Vv2uYfDCu942vm76i8vNwvYAHeUQXWFoMVLAlh1JPtSS409bZ46A7pntRsKtaqsFOJ1%2BYtiGWyRlrj2glpb5VHKjD5t%2BeydC9DUfoRtVqliXks4/hqWV6G/fVcU%2Bk8HzQOVDLOKHmWgqbFE1HG8zyK5%2BmFhd/mdu%2Blrl/FvoCTDEP39DaWTooxQqhShDOPlRVzRsh8uD/rem7cPrClAFfrqerOSnrjs97bVaVIqxQH%2B1wan3nBirO5gi6dGsBcT1H6BGSOEsAgXyIAD/MbtJWzKmmhawkdbE7aJzon8%2BZtuHmXKErwdeatNrThN4zROnEjWcyYdGEqd7lteQR0PzVardyTziN7b%2BQ1ooR4VHRqxpHL9/UUYqZvuRnOK2NfQV1TbcD/PYz51Q/ScVu4gPK8yC8fHQpRqGAnUs3pXXWOgzYSlxB9IZ/FL82NU7Y9Z/CdouvcCd2gwjtvlPPHtNPRkTYNDyyD1ETWfUqbxlrCbOdCra0ErscNK91TECasY1doRIPvDxew7CSQ3sGOspmXCi3GM0H/2IruwIBHt3xjmDNwHMnPu5GH9GQ0h6EaSiD89BTPdzzZyKq0%2BTDDlKEbO64zsHd2ED7%2B8PHC4tFctSggX5URZ88DyWXIARB28EH0WWm9xHQf1tfF/%2BwO/xxV7v%2B7iy%2BHhwsyU0CH151JOhPCHWOoa4i8nINUkdlrR4OrHnXUzqj0zonvo27NjWJZaq%2BnBHes6zG%2BUl%2BVBAjispxVjgakSmZtRisPmLZXL4AQCqQfJwSx3OF82V4uHq3BuiKTU13QEShMs9vYIy0LBeSJo263VS2yna8/FWDlnG201gdEJ/ifQM0WVJUSpALQwGbbknVvspubHGWMGBj%2B1EDcVTZXcNQPcQKp0vTpw7InA8Pmlcii2nifVoD3w2ap2LACTnkgLV9c0ObssVMAVFrhM/1VPu1m6IKLUbuTxlkzeoTgkAFwnllaBvQPglkAqJ6RIMpxKr5%2BId8zmsm5lacdhZco5D7dMN6R%2BsSDPfRTKSoEiulnGR49swPfGfJdGRQOopxmVXH2KBA8tr/Q2Oe1ZiLGcEznxp6ze5KW%2Bty/dcTAXeZKOKL2Tjv4Q0kWWJEIpDMVtZe3hdXY64fVaw1GaHZ/dFpfkg3ZwgWxAsE/LCk1gNi2OJAW0cfMpnPJGpUr0323KaHuP5w0JXd%2Bh5cJ6/eaEM57/hiOPEX8K96ywu%2BL2Tps8m5dA5TfO/TneP/lq0EPP2k2PqdXlIsBS%2BoYd%2BQUFl%2BermwQHgu3XRFNUhF4YpcFMGrVf18oRLJwfG/ZOLcZcvWBisI544ct5q/tN39/fr/F6Ntt1p5%2BkTBaRDe5tbJnrf9JX6JdBZCqJNW3nEmmsttDP5hU4JZffKw10f%2BzcF5FKurlbMaRNkenlMT14Fuax2JZAQ1bAy8aDpwZlddhThDFx8Iv0g5%2B3kPfJBNpwJ9cgbbwYIsadCBnvNsUVHC4NTocRfehJ7bYtP6p6idX5AWO1JmlFnH0uHYT%2BxDIOs9jPYieuwr68Uwa6aWtKmfvpA2p4xiwBv1XJMvTR%2BixFJaxST9fLXvRw3fvKSLk4rYsA8TqDOnemKMHFkoFM7iyUSd6ru3xoCkqHuY%2Bl3O5yte3M2YbD/ajpv%2BxOHOL62O8hzWJgwQkGomx7Z/uIOiX29W%2BNrpiADOanZXUXmdI11OpzrCzoeiD7aKMW7ldXxw719NnxF9zmr0aHaPdO5PTFh6NHMqG4uRp%2B1Xugyt%2BtCmCFK3juDiGiu5v%2BElBkxvRJmaIzfp4cStz9CBz1Y7UWEp3JyXMuXiIlmcZfjZwHTm49iggQF6lUCd9GRWIVgaLzASyda4kGinlruJsbQBuNBmHJtTGwskOH/HeYY5mKIfYcdzDxKU%2BzCx9Ss3PrtdLC69ZQy0491kE%2ByOLB8oGP5DO/JWmfrl9nL7E3pEHqOdDO41eMgLFDgsVrfHWYb4//FEWKZSx2%2B6c6cEY9olXLSUNYzINORN7CjXqE4HZ6fxRQJnmXaw0j74cJDij3SGM/v26IG1AbYrfWRvtEVjJ0YjY4Gwrfy00acxfxmstGqeD6TbFpDzBlpqF5WJa1Lbe41vH2B8VYU81Qr/SJldB6Q1G8ca4aFYQ8GB3EmumIQ6kYVsvDA4YiDQXoOTH5%2BW09qfY2PO5BBaaNTV7HerRN016PTh8ERsoOtTrdl%2B5tTzQqAoC45vAMk%2BTkd9JmcP9HlSZUPQhTnG5a8H2SJCCLVEsrqc2Fx9xdDWBCgfBM1ZiYuucOnvUWuoY5v2STVo6DKQaG%2BK/b8%2BJsYlgXA0AHPnwLnL8hL&continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&tcc=1
2025-08-09 19:47:41 — google - Google 검색 (google.co.kr) — https://accounts.google.co.kr/accounts/SetSID?ssdc=1&sidt=ALWU2cuo3SvChMvgsFVYu1q5lkZIcMgX4zUPuFK4l8jPo2iFxtGBWnZm%2B3/GpbgdWvUajkj8IaoSPS8aBI9j4oCZkoXjIZu/AFvBndkrvhoiRH0S7EJDPj9C9ZqM%2BJ4/35TYfKHCVDWrZ/EFYHDjfhTxUezkgH4gBzOp3MY4/IzgW82HHTA8lAYpMyhJiaRCFIqChVTwvOk9rbytoRHhWUcO2/JjGFDnIkZHAoY3eeFZO0HZ%2Bp%2BrNjneDc1NVhQgc5CNFPxCuIYPmoq24w03MiIkLtytEEgtohSkseTCpb28Jfl5xpeEasdtJtI4vX2j98kCzN0hJXKBW4sCbI/vOKnif8kfKj3LWIzelYzklqxH3idsFnySYY07Vv2uYfDCu942vm76i8vNwvYAHeUQXWFoMVLAlh1JPtSS409bZ46A7pntRsKtaqsFOJ1%2BYtiGWyRlrj2glpb5VHKjD5t%2BeydC9DUfoRtVqliXks4/hqWV6G/fVcU%2Bk8HzQOVDLOKHmWgqbFE1HG8zyK5%2BmFhd/mdu%2Blrl/FvoCTDEP39DaWTooxQqhShDOPlRVzRsh8uD/rem7cPrClAFfrqerOSnrjs97bVaVIqxQH%2B1wan3nBirO5gi6dGsBcT1H6BGSOEsAgXyIAD/MbtJWzKmmhawkdbE7aJzon8%2BZtuHmXKErwdeatNrThN4zROnEjWcyYdGEqd7lteQR0PzVardyTziN7b%2BQ1ooR4VHRqxpHL9/UUYqZvuRnOK2NfQV1TbcD/PYz51Q/ScVu4gPK8yC8fHQpRqGAnUs3pXXWOgzYSlxB9IZ/FL82NU7Y9Z/CdouvcCd2gwjtvlPPHtNPRkTYNDyyD1ETWfUqbxlrCbOdCra0ErscNK91TECasY1doRIPvDxew7CSQ3sGOspmXCi3GM0H/2IruwIBHt3xjmDNwHMnPu5GH9GQ0h6EaSiD89BTPdzzZyKq0%2BTDDlKEbO64zsHd2ED7%2B8PHC4tFctSggX5URZ88DyWXIARB28EH0WWm9xHQf1tfF/%2BwO/xxV7v%2B7iy%2BHhwsyU0CH151JOhPCHWOoa4i8nINUkdlrR4OrHnXUzqj0zonvo27NjWJZaq%2BnBHes6zG%2BUl%2BVBAjispxVjgakSmZtRisPmLZXL4AQCqQfJwSx3OF82V4uHq3BuiKTU13QEShMs9vYIy0LBeSJo263VS2yna8/FWDlnG201gdEJ/ifQM0WVJUSpALQwGbbknVvspubHGWMGBj%2B1EDcVTZXcNQPcQKp0vTpw7InA8Pmlcii2nifVoD3w2ap2LACTnkgLV9c0ObssVMAVFrhM/1VPu1m6IKLUbuTxlkzeoTgkAFwnllaBvQPglkAqJ6RIMpxKr5%2BId8zmsm5lacdhZco5D7dMN6R%2BsSDPfRTKSoEiulnGR49swPfGfJdGRQOopxmVXH2KBA8tr/Q2Oe1ZiLGcEznxp6ze5KW%2Bty/dcTAXeZKOKL2Tjv4Q0kWWJEIpDMVtZe3hdXY64fVaw1GaHZ/dFpfkg3ZwgWxAsE/LCk1gNi2OJAW0cfMpnPJGpUr0323KaHuP5w0JXd%2Bh5cJ6/eaEM57/hiOPEX8K96ywu%2BL2Tps8m5dA5TfO/TneP/lq0EPP2k2PqdXlIsBS%2BoYd%2BQUFl%2BermwQHgu3XRFNUhF4YpcFMGrVf18oRLJwfG/ZOLcZcvWBisI544ct5q/tN39/fr/F6Ntt1p5%2BkTBaRDe5tbJnrf9JX6JdBZCqJNW3nEmmsttDP5hU4JZffKw10f%2BzcF5FKurlbMaRNkenlMT14Fuax2JZAQ1bAy8aDpwZlddhThDFx8Iv0g5%2B3kPfJBNpwJ9cgbbwYIsadCBnvNsUVHC4NTocRfehJ7bYtP6p6idX5AWO1JmlFnH0uHYT%2BxDIOs9jPYieuwr68Uwa6aWtKmfvpA2p4xiwBv1XJMvTR%2BixFJaxST9fLXvRw3fvKSLk4rYsA8TqDOnemKMHFkoFM7iyUSd6ru3xoCkqHuY%2Bl3O5yte3M2YbD/ajpv%2BxOHOL62O8hzWJgwQkGomx7Z/uIOiX29W%2BNrpiADOanZXUXmdI11OpzrCzoeiD7aKMW7ldXxw719NnxF9zmr0aHaPdO5PTFh6NHMqG4uRp%2B1Xugyt%2BtCmCFK3juDiGiu5v%2BElBkxvRJmaIzfp4cStz9CBz1Y7UWEp3JyXMuXiIlmcZfjZwHTm49iggQF6lUCd9GRWIVgaLzASyda4kGinlruJsbQBuNBmHJtTGwskOH/HeYY5mKIfYcdzDxKU%2BzCx9Ss3PrtdLC69ZQy0491kE%2ByOLB8oGP5DO/JWmfrl9nL7E3pEHqOdDO41eMgLFDgsVrfHWYb4//FEWKZSx2%2B6c6cEY9olXLSUNYzINORN7CjXqE4HZ6fxRQJnmXaw0j74cJDij3SGM/v26IG1AbYrfWRvtEVjJ0YjY4Gwrfy00acxfxmstGqeD6TbFpDzBlpqF5WJa1Lbe41vH2B8VYU81Qr/SJldB6Q1G8ca4aFYQ8GB3EmumIQ6kYVsvDA4YiDQXoOTH5%2BW09qfY2PO5BBaaNTV7HerRN016PTh8ERsoOtTrdl%2B5tTzQqAoC45vAMk%2BTkd9JmcP9HlSZUPQhTnG5a8H2SJCCLVEsrqc2Fx9xdDWBCgfBM1ZiYuucOnvUWuoY5v2STVo6DKQaG%2BK/b8%2BJsYlgXA0AHPnwLnL8hL&continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&tcc=1
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://accounts.google.com/CheckCookie?continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&hl=ko&checkedDomains=youtube&checkConnection=youtube:400&pstMsg=1&flowName=GlifWebSignIn&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&chtml=LoginDoneHtml&gidl=EgIIAA
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://accounts.google.com/CheckCookie?continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&hl=ko&checkedDomains=youtube&checkConnection=youtube:400&pstMsg=1&flowName=GlifWebSignIn&ifkv=AdBytiMF7t4M4N1fEIC4X7gJ9eO_MR5wPL6joY5jsrBG7ekgsd40Za0hYueZfbagDsVzZ-8UHdNjPw&chtml=LoginDoneHtml&gidl=EgIIAA
2025-08-09 19:47:41 — google - Google 검색 (youtube.com) — https://accounts.youtube.com/accounts/SetSID?ssdc=1&sidt=ALWU2cv5MzPZZZKW%2BsrDEbGZNYaiHuzk4TN6SJlAMCiOSojU3AqMQj1J2jTv90a8b6A7TZtGvp8bdRt/EFXrazocdKmrQ6B2SBLIQH1xvazAn9plKEkP0O0HEWWavb75kZobwmr8Qio5gskPOEuHIVJMbfBmlFR7gkKk7qL8xD4qbs0infwpti4JKVVrlTwS9C4iMJ7G96kTu4ptaMu13jHr2egnhtoCIM/WcMSuUjsuq9cnPKpX1PX8aR/h5LFJRU3y%2BuwqI9kIEKUhpsVjbJxCRlaC82IknEdK0MI/JfJ7zT1NL%2BUpRzIfqF5RJfTasX4IYkVOF/EDuH5LeQxQ1l%2BiGz8D0avZPXdGX3rnpktyvg8adUnMy94O7AqBSHC7faP6eAT2R0JkEJjpq1USi9prqHy54DHSHzsiGzzn7FiCShzN%2BsBgbrdmTElvHa5cgVMn9n0WBva0cNOP6lfbVvMC0undrJc0zLJ/QmYoQ2Ukr9xDPrVW3J828lS5QN0MegCPNpO4YXlfwUfmf67GV%2BFTM4ZDMgxNJxqU33u6ul1NQp7CifvrdD5gM2xV8S0Oi2TJ4cSmm7AZ1l1%2Bvru/0Lmj5waceU7Zf3W3Z9kqcAEw8Gg6ZGbR%2BNTYDEQMh5RO%2B%2BV4Ig7Wkt3ENSJvMeBAxY2M7zTq3nubQ2T74Lql8GDKia9TmmXneQI31I1xIB4avtYOy2yTPCJ3MoujhG2KtYy6WUXHJT7RwNmL1TY8VibS2J4uOClISYYryX8pXjL467nNWlzHHe0NnMM1XfWHbptr/4TMpmetzWKCGRwfg6bTQAV8unqWUjxghsWsxS7eYbRzcWwE%2BbhpH3ZfGtv%2Bs/%2BHlGVNJHnHldtvRLE3FvyWaRv/VZIehOhVfEmjnIPau0mYWJbivR3C4DZi9cyQ9RH2Qu%2BpPQ9DOkRq/UP2DgV6ey9pBE04%2BhMfgbyISjAAPK6bZZUnnhRwKGmyxfFASqq0/66WJNnlrWVPmUi7zcpaDEsUGsHONKOWf/3pRallfhEfZY/EyskY/QXGy6qIiTRom1nb3Hl7d71r0DbKlp4YiFC8%2B2IOylma%2BxyMD8w5w6QgaMH18Q4sqvtEKBPMWFAjUG6ktwqYFeTeDQw5hOcnYWnqEO%2BzgFB8ASNYZABMwkRXh4lWb7aMJ/sG7qJTePO365cH45wnm/n2w2jAPSYawaQLvPXKYaSrVXmxJWgegTUKDGbzJ8gkV1ork30XlAz0wDhccOGs4gSI%2BJ7ROPwkNKkljGQdZfly97E/RuWaxNGe%2BncZkXi5XDsQCAbPmdX8yNNxn%2BxSRbwr32l3aiuZBazRcHXjPkNzoU%2B7WJ3FCPWrDs%2BOGZWXSgJHy8lpDzTd2Zr9k6VMK23Z6jevChAqobmmU/Qx8Gs2i/MR5YZh7UH2vuPMDQh1pi94NR%2BpG3VWSc/qIOfs606fLNAAbF3TstVa9c5ne/QEpDiLgO714ZVs5dxD51%2BIdrzfD0wQlvtKL6nla73MI44OL8HMEzEV0PE5weIyOmGlHvkSgc3PpZU1wTBiZX0%2BmOAIayaKMhNjAqydWgpp96QvmlNQSPd6l1/8RKZoUHef1c4Gst9FqjVra9HzXRvCAK06HR2TlCYvRvXMq5Q8jBgQFu/1qQt1%2BpVR22/cPFupQPSctQsyTqzt0TWT1kE/fzrMaE/HQjIXgTSnrt4vj2sXDTyF%2BO5n1CzxL7jhFDLVfPtmX0wBdVMPIfxoxc%2BcO7asFAW1SFu/Iwy9ii1/YVMrJ5WMcS68yjrpKWGkniGe9WHFv1ltstEeW4NMwgMEx2Blqd8aXF08eJuDGjev7NyuMfyD9dYvLjCaHF/B7d0MiQTKKljN8TRFpS6ZapBZdheVshwodlzNTIJgushm1wp1F8x%2B3b0v31pbevgQjytWcHt3o2t80g4Wpq5dnGZ3DppD3EklsW3b4TmFOpZL3rUFE394eL8C4SuIKVgry3DcmWQf1e25iTPEEXptY1c5tJLflWljoeu9ok3l/DP3rS4PzzuaTmHcQREEKHgeyMitHayhZi01YQyuaV/4zjr3VBDR/QDrqcheBwTjYBUfUjJV/hlkRFn6xYRjpatdZOB%2BvWL/V3Bj7nyhfGGQCiUmQZWziiuoviTVTsWr/p7bxCTVvhF1fr1KmENLByHCsv0eqAqsXjebKQX8g5yCWVji0nFJ4IAsYppjjrhFnC9sORvd45rvx6%2BRG3HaFkAa8iPQkwcOe/ifZG2bnNCWYYrZ7UaBfuIirA5bNYi8VtBbCJYboNycviVWOmLDmTTKDPX4KOuPbiYtdqR%2BUIqJCwMmEdF3T73c9I9NQzeg5wsnhGYfj9nxJ1rXpHOjhFKTQiSrNgCDIM66KCE3ea3EELFtQvq%2BUHUVnEGzsQTRTmDv5eujPIGTl%2BvNaOyZlsxnVRarVbn91TETqklkaKTfAYKk6AZT0I1a9wuwSmIP%2Bc4zzE7eNoF%2Byb2pZ4rVZxxCtEhP/4E5H5FJDpcnwES0RwYqyV0U%2BFF/htZ9Rkfg4xEFmQR85ETnUi4%2Bmv43zKJyu40UdP8mrJ/WkiX4MJiOKfPLG4AsQVPv34qt2QheKxzFNHZR9fBUZwGwzmNQ7VLjYxAW2PkJH7SFHwmwgkZQCY7EYz7M6OYl3TOVP7MthLOQJnKX7SwzEGoP1MPqwjzerI2bxOfadFz5dB2is6JeYNUR&continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&tcc=1&dbus=KR
2025-08-09 19:47:41 — google - Google 검색 (youtube.com) — https://accounts.youtube.com/accounts/SetSID?ssdc=1&sidt=ALWU2cv5MzPZZZKW%2BsrDEbGZNYaiHuzk4TN6SJlAMCiOSojU3AqMQj1J2jTv90a8b6A7TZtGvp8bdRt/EFXrazocdKmrQ6B2SBLIQH1xvazAn9plKEkP0O0HEWWavb75kZobwmr8Qio5gskPOEuHIVJMbfBmlFR7gkKk7qL8xD4qbs0infwpti4JKVVrlTwS9C4iMJ7G96kTu4ptaMu13jHr2egnhtoCIM/WcMSuUjsuq9cnPKpX1PX8aR/h5LFJRU3y%2BuwqI9kIEKUhpsVjbJxCRlaC82IknEdK0MI/JfJ7zT1NL%2BUpRzIfqF5RJfTasX4IYkVOF/EDuH5LeQxQ1l%2BiGz8D0avZPXdGX3rnpktyvg8adUnMy94O7AqBSHC7faP6eAT2R0JkEJjpq1USi9prqHy54DHSHzsiGzzn7FiCShzN%2BsBgbrdmTElvHa5cgVMn9n0WBva0cNOP6lfbVvMC0undrJc0zLJ/QmYoQ2Ukr9xDPrVW3J828lS5QN0MegCPNpO4YXlfwUfmf67GV%2BFTM4ZDMgxNJxqU33u6ul1NQp7CifvrdD5gM2xV8S0Oi2TJ4cSmm7AZ1l1%2Bvru/0Lmj5waceU7Zf3W3Z9kqcAEw8Gg6ZGbR%2BNTYDEQMh5RO%2B%2BV4Ig7Wkt3ENSJvMeBAxY2M7zTq3nubQ2T74Lql8GDKia9TmmXneQI31I1xIB4avtYOy2yTPCJ3MoujhG2KtYy6WUXHJT7RwNmL1TY8VibS2J4uOClISYYryX8pXjL467nNWlzHHe0NnMM1XfWHbptr/4TMpmetzWKCGRwfg6bTQAV8unqWUjxghsWsxS7eYbRzcWwE%2BbhpH3ZfGtv%2Bs/%2BHlGVNJHnHldtvRLE3FvyWaRv/VZIehOhVfEmjnIPau0mYWJbivR3C4DZi9cyQ9RH2Qu%2BpPQ9DOkRq/UP2DgV6ey9pBE04%2BhMfgbyISjAAPK6bZZUnnhRwKGmyxfFASqq0/66WJNnlrWVPmUi7zcpaDEsUGsHONKOWf/3pRallfhEfZY/EyskY/QXGy6qIiTRom1nb3Hl7d71r0DbKlp4YiFC8%2B2IOylma%2BxyMD8w5w6QgaMH18Q4sqvtEKBPMWFAjUG6ktwqYFeTeDQw5hOcnYWnqEO%2BzgFB8ASNYZABMwkRXh4lWb7aMJ/sG7qJTePO365cH45wnm/n2w2jAPSYawaQLvPXKYaSrVXmxJWgegTUKDGbzJ8gkV1ork30XlAz0wDhccOGs4gSI%2BJ7ROPwkNKkljGQdZfly97E/RuWaxNGe%2BncZkXi5XDsQCAbPmdX8yNNxn%2BxSRbwr32l3aiuZBazRcHXjPkNzoU%2B7WJ3FCPWrDs%2BOGZWXSgJHy8lpDzTd2Zr9k6VMK23Z6jevChAqobmmU/Qx8Gs2i/MR5YZh7UH2vuPMDQh1pi94NR%2BpG3VWSc/qIOfs606fLNAAbF3TstVa9c5ne/QEpDiLgO714ZVs5dxD51%2BIdrzfD0wQlvtKL6nla73MI44OL8HMEzEV0PE5weIyOmGlHvkSgc3PpZU1wTBiZX0%2BmOAIayaKMhNjAqydWgpp96QvmlNQSPd6l1/8RKZoUHef1c4Gst9FqjVra9HzXRvCAK06HR2TlCYvRvXMq5Q8jBgQFu/1qQt1%2BpVR22/cPFupQPSctQsyTqzt0TWT1kE/fzrMaE/HQjIXgTSnrt4vj2sXDTyF%2BO5n1CzxL7jhFDLVfPtmX0wBdVMPIfxoxc%2BcO7asFAW1SFu/Iwy9ii1/YVMrJ5WMcS68yjrpKWGkniGe9WHFv1ltstEeW4NMwgMEx2Blqd8aXF08eJuDGjev7NyuMfyD9dYvLjCaHF/B7d0MiQTKKljN8TRFpS6ZapBZdheVshwodlzNTIJgushm1wp1F8x%2B3b0v31pbevgQjytWcHt3o2t80g4Wpq5dnGZ3DppD3EklsW3b4TmFOpZL3rUFE394eL8C4SuIKVgry3DcmWQf1e25iTPEEXptY1c5tJLflWljoeu9ok3l/DP3rS4PzzuaTmHcQREEKHgeyMitHayhZi01YQyuaV/4zjr3VBDR/QDrqcheBwTjYBUfUjJV/hlkRFn6xYRjpatdZOB%2BvWL/V3Bj7nyhfGGQCiUmQZWziiuoviTVTsWr/p7bxCTVvhF1fr1KmENLByHCsv0eqAqsXjebKQX8g5yCWVji0nFJ4IAsYppjjrhFnC9sORvd45rvx6%2BRG3HaFkAa8iPQkwcOe/ifZG2bnNCWYYrZ7UaBfuIirA5bNYi8VtBbCJYboNycviVWOmLDmTTKDPX4KOuPbiYtdqR%2BUIqJCwMmEdF3T73c9I9NQzeg5wsnhGYfj9nxJ1rXpHOjhFKTQiSrNgCDIM66KCE3ea3EELFtQvq%2BUHUVnEGzsQTRTmDv5eujPIGTl%2BvNaOyZlsxnVRarVbn91TETqklkaKTfAYKk6AZT0I1a9wuwSmIP%2Bc4zzE7eNoF%2Byb2pZ4rVZxxCtEhP/4E5H5FJDpcnwES0RwYqyV0U%2BFF/htZ9Rkfg4xEFmQR85ETnUi4%2Bmv43zKJyu40UdP8mrJ/WkiX4MJiOKfPLG4AsQVPv34qt2QheKxzFNHZR9fBUZwGwzmNQ7VLjYxAW2PkJH7SFHwmwgkZQCY7EYz7M6OYl3TOVP7MthLOQJnKX7SwzEGoP1MPqwjzerI2bxOfadFz5dB2is6JeYNUR&continue=https://www.google.com/search?q%3Dgoogle%26oq%3Dgoogle%26gs_lcrp%3DEgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA%26sourceid%3Dchrome%26ie%3DUTF-8&tcc=1&dbus=KR
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://www.google.com/search?q=google&oq=google&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://www.google.com/search?q=google&oq=google&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://www.google.com/search?q=google&oq=google&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-09 19:47:41 — google - Google 검색 (google.com) — https://www.google.com/search?q=google&oq=google&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyEwgBEC4YgwEYxwEYsQMY0QMYgAQyCggCEAAYsQMYgAQyCggDEAAYsQMYgAQyDQgEEAAYgwEYsQMYgAQyCggFEAAYsQMYgAQyDQgGEAAYgwEYsQMYgAQyCggHEAAYsQMYgAQyBggIEAAYAzIHCAkQABiABNIBCDE2MTNqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://accounts.google.com/ServiceLogin?service=mail&passive=1209600&osid=1&continue=https://mail.google.com/mail/u/0/&followup=https://mail.google.com/mail/u/0/&emr=1&authuser=0
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://accounts.google.com/ServiceLogin?service=mail&passive=1209600&osid=1&continue=https://mail.google.com/mail/u/0/&followup=https://mail.google.com/mail/u/0/&emr=1&authuser=0
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/accounts/SetOSID?authuser=0&continue=https://mail.google.com/mail/u/0/?pli%3D1&osidt=ALWU2csGosWxh_pyjEACZpLHIAP73LflAC-1L8Iwl2yQRzY_Ly1GfZ-3Rdxaq8wBZ06JwoMZrV_noJoFXSGUX4lL8jzn-6XawEuJXx6NJEhuSBgdriPdsKMkGT9Ua9WyjKaWWezUqRYgv7ajbpTIsqdy4nIIvaMWg3_IT6Ut_lqzvrf95y6Fp1X7Xbu_zRZvTr6WTkyL2bn7sb86SazfvPnVqA_HiFMymmMdJf00RcXQV1KoTtMIYUNoMQg8kFzfYB_iDGevtmtQiWhXD7I8h5wx2sLuo5etumPy4A66alOUoJxKueG6r6ePs9dt-lY4Nt7QWHQMQazNm13fkv76u-giVi5hpuKs61epG5bX5zUvy6gkwWDpdv93ceAEj5myzUSnnzFrUVIGfB9LLHhfbIRIBg36bZmkdeJKYo3fAOzkDuvg4oQMBfo5VBRYgZ4CEcdYrc7Hi1631dBZkHqMhBu74NJjeI46K7v2-CNLlfjMziKB_rSGcrs&ifkv=AdBytiPRKaOMkaecj4WjuCFY5TLa3S7brI0GJT-an012_TJtd-vFe1CAJAdQiiFx4S81w2s5u2TI
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/accounts/SetOSID?authuser=0&continue=https://mail.google.com/mail/u/0/?pli%3D1&osidt=ALWU2csGosWxh_pyjEACZpLHIAP73LflAC-1L8Iwl2yQRzY_Ly1GfZ-3Rdxaq8wBZ06JwoMZrV_noJoFXSGUX4lL8jzn-6XawEuJXx6NJEhuSBgdriPdsKMkGT9Ua9WyjKaWWezUqRYgv7ajbpTIsqdy4nIIvaMWg3_IT6Ut_lqzvrf95y6Fp1X7Xbu_zRZvTr6WTkyL2bn7sb86SazfvPnVqA_HiFMymmMdJf00RcXQV1KoTtMIYUNoMQg8kFzfYB_iDGevtmtQiWhXD7I8h5wx2sLuo5etumPy4A66alOUoJxKueG6r6ePs9dt-lY4Nt7QWHQMQazNm13fkv76u-giVi5hpuKs61epG5bX5zUvy6gkwWDpdv93ceAEj5myzUSnnzFrUVIGfB9LLHhfbIRIBg36bZmkdeJKYo3fAOzkDuvg4oQMBfo5VBRYgZ4CEcdYrc7Hi1631dBZkHqMhBu74NJjeI46K7v2-CNLlfjMziKB_rSGcrs&ifkv=AdBytiPRKaOMkaecj4WjuCFY5TLa3S7brI0GJT-an012_TJtd-vFe1CAJAdQiiFx4S81w2s5u2TI
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/?pli=1
2025-08-09 19:47:55 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/?pli=1
2025-08-09 19:48:08 — v1ct0r_32_46267 sent you a friend request! - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox/FMfcgzQbgcWHHCrmnthNgVkvQhnrMSGc
2025-08-09 19:48:08 — v1ct0r_32_46267 sent you a friend request! - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox/FMfcgzQbgcWHHCrmnthNgVkvQhnrMSGc
2025-08-09 19:48:09 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox
2025-08-09 19:48:09 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox
2025-08-09 19:48:09 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox
2025-08-09 19:48:09 — Inbox - th1s1sj0hn0008@gmail.com - Gmail (google.com) — https://mail.google.com/mail/u/0/#inbox
2025-08-09 19:48:09 — gmail - Google 검색 (google.com) — https://www.google.com/search?q=gmail&oq=gmail&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgoIARAAGLEDGIAEMgoIAhAAGLEDGIAEMgoIAxAAGLEDGIAEMgwIBBAAGEMYgAQYigUyBwgFEAAYgAQyDAgGEAAYQxiABBiKBTIMCAcQABhDGIAEGIoFMgcICBAAGIAEMgcICRAAGIAE0gEHNzAwajBqOagCALACAQ&sourceid=chrome&ie=UTF-8
2025-08-09 19:48:09 — gmail - Google 검색 (google.com) — https://www.google.com/search?q=gmail&oq=gmail&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgoIARAAGLEDGIAEMgoIAhAAGLEDGIAEMgoIAxAAGLEDGIAEMgwIBBAAGEMYgAQYigUyBwgFEAAYgAQyDAgGEAAYQxiABBiKBTIMCAcQABhDGIAEGIoFMgcICBAAGIAEMgcICRAAGIAE0gEHNzAwajBqOagCALACAQ&sourceid=chrome&ie=UTF-8
2025-08-09 19:48:09 — gmail - Google 검색 (google.com) — https://www.google.com/search?q=gmail&oq=gmail&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgoIARAAGLEDGIAEMgoIAhAAGLEDGIAEMgoIAxAAGLEDGIAEMgwIBBAAGEMYgAQYigUyBwgFEAAYgAQyDAgGEAAYQxiABBiKBTIMCAcQABhDGIAEGIoFMgcICBAAGIAEMgcICRAAGIAE0gEHNzAwajBqOagCALACAQ&sourceid=chrome&ie=UTF-8
2025-08-09 19:48:09 — gmail - Google 검색 (google.com) — https://www.google.com/search?q=gmail&oq=gmail&gs_lcrp=EgZjaHJvbWUyDggAEEUYORhDGIAEGIoFMgoIARAAGLEDGIAEMgoIAhAAGLEDGIAEMgoIAxAAGLEDGIAEMgwIBBAAGEMYgAQYigUyBwgFEAAYgAQyDAgGEAAYQxiABBiKBTIMCAcQABhDGIAEGIoFMgcICBAAGIAEMgcICRAAGIAE0gEHNzAwajBqOagCALACAQ&sourceid=chrome&ie=UTF-8
2025-08-09 19:48:22 — (watchify.net) — https://watchify.net/
2025-08-09 19:48:22 — (watchify.net) — https://watchify.net/
2025-08-09 19:48:26 — Document (watchify.net) — http://watchify.net/signin
2025-08-09 19:48:26 — Document (watchify.net) — http://watchify.net/signin
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-09 19:48:41 — (watchify.net) — http://watchify.net/
2025-08-10 19:26:35 — (liveviewers.net) — https://liveviewers.net/
2025-08-10 19:26:35 — (liveviewers.net) — https://liveviewers.net/
2025-08-10 19:26:38 — Document (liveviewers.net) — http://liveviewers.net/login
2025-08-10 19:26:38 — Document (liveviewers.net) — http://liveviewers.net/login
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:29:21 — (liveviewers.net) — http://liveviewers.net/
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:05 — Document (credential-vault.io) — http://credential-vault.io/auth/login
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:31 — (credential-vault.io) — http://credential-vault.io/
2025-08-10 19:31:45 — (tripnest.io) — https://tripnest.io/
2025-08-10 19:31:45 — (tripnest.io) — https://tripnest.io/
2025-08-10 19:31:49 — Document (tripnest.io) — http://tripnest.io/signup
2025-08-10 19:31:49 — Document (tripnest.io) — http://tripnest.io/signup
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:31:58 — (tripnest.io) — http://tripnest.io/
2025-08-10 19:32:51 — google spreadsheet - Google 검색 (google.com) — https://www.google.com/search?q=google+spreadsheet&oq=google+spread&gs_lcrp=EgZjaHJvbWUqCggAEAAYsQMYgAQyCggAEAAYsQMYgAQyCQgBEEUYORiABDIHCAIQABiABDIHCAMQABiABDIHCAQQABiABDIHCAUQABiABDIHCAYQABiABDIHCAcQABiABDIHCAgQABiABDIHCAkQABiABNIBCDQ3MThqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-10 19:32:51 — google spreadsheet - Google 검색 (google.com) — https://www.google.com/search?q=google+spreadsheet&oq=google+spread&gs_lcrp=EgZjaHJvbWUqCggAEAAYsQMYgAQyCggAEAAYsQMYgAQyCQgBEEUYORiABDIHCAIQABiABDIHCAMQABiABDIHCAQQABiABDIHCAUQABiABDIHCAYQABiABDIHCAcQABiABDIHCAgQABiABDIHCAkQABiABNIBCDQ3MThqMGo3qAIAsAIA&sourceid=chrome&ie=UTF-8
2025-08-10 19:32:56 — Google Sheets (google.com) — https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&osid=1&continue=https://docs.google.com/spreadsheets/u/0/?pli%3D1&followup=https://docs.google.com/spreadsheets/u/0/?pli%3D1<mpl=sheets&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&osid=1&continue=https://docs.google.com/spreadsheets/u/0/?pli%3D1&followup=https://docs.google.com/spreadsheets/u/0/?pli%3D1<mpl=sheets&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&osid=1&continue=https://spreadsheets.google.com/&followup=https://spreadsheets.google.com/<mpl=sheets&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&osid=1&continue=https://spreadsheets.google.com/&followup=https://spreadsheets.google.com/<mpl=sheets&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/accounts/SetOSID?authuser=0&continue=https://docs.google.com/spreadsheets/u/0/?pli%3D1%26authuser%3D0&osidt=ALWU2cvfUctcassR6LxulOZvPUCVCQ-bYM1li14BeH7OX4OrqVgn1vGGwbGvYvw1RnBWbSte9N6qJL8N_BDCpop0YIjX-RZAqW_VC3BiTEuaNuPddzAxlBRVKJ54UtGOQBJBbEdfs90BbNe0oXM3h4Hh7nvS5JXCGGfHH_8JjaVJURTeoPQ4bzT00t9mjFc23fNwpKtAtM1RstLvAdDA1eGfvZygH_rcVQ7vsKymFQ6e09GF0cWg89G0glAElUEDR5CaltFo8xKdIXxEbBY9ad1unQOVtnH-bz0ZSGj6oTns6mBTCTN5nuhTNUAf_ZGHuqk-vQln3WD78KOjay2MEHDWZhfMnsLiLOD4WlJv0htFValinW6CqnqX6sgsUDmk4Fwy10CWdHTkTrX3YqPGA95NZqAjcipVVHNZt21QJ6XpSsuAJ2VtFOMtMSszDBHKCxXwZmSfWtQZh138NpGoU36VVfCDAwSxB3k5F3DBqzpsfS7X6bVZIKc&ifkv=AdBytiNU7gszM13NWs8N9abJ32z-drUW6EQU9iN3tO535mSd9MKBt-FerzrScqPi29lwnjGX8Y0QbQ
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/accounts/SetOSID?authuser=0&continue=https://docs.google.com/spreadsheets/u/0/?pli%3D1%26authuser%3D0&osidt=ALWU2cvfUctcassR6LxulOZvPUCVCQ-bYM1li14BeH7OX4OrqVgn1vGGwbGvYvw1RnBWbSte9N6qJL8N_BDCpop0YIjX-RZAqW_VC3BiTEuaNuPddzAxlBRVKJ54UtGOQBJBbEdfs90BbNe0oXM3h4Hh7nvS5JXCGGfHH_8JjaVJURTeoPQ4bzT00t9mjFc23fNwpKtAtM1RstLvAdDA1eGfvZygH_rcVQ7vsKymFQ6e09GF0cWg89G0glAElUEDR5CaltFo8xKdIXxEbBY9ad1unQOVtnH-bz0ZSGj6oTns6mBTCTN5nuhTNUAf_ZGHuqk-vQln3WD78KOjay2MEHDWZhfMnsLiLOD4WlJv0htFValinW6CqnqX6sgsUDmk4Fwy10CWdHTkTrX3YqPGA95NZqAjcipVVHNZt21QJ6XpSsuAJ2VtFOMtMSszDBHKCxXwZmSfWtQZh138NpGoU36VVfCDAwSxB3k5F3DBqzpsfS7X6bVZIKc&ifkv=AdBytiNU7gszM13NWs8N9abJ32z-drUW6EQU9iN3tO535mSd9MKBt-FerzrScqPi29lwnjGX8Y0QbQ
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/?pli=1&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/?pli=1
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/?pli=1&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/?pli=1&authuser=0
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/accounts/SetOSID?authuser=0&continue=https://spreadsheets.google.com/?pli%3D1%26authuser%3D0&osidt=ALWU2ctCPQvWucXzXtCf2X135Zw287u70dZPUA01O3v1HAjIx8obvAapbotdk3C9lsyE5TulTd1KA-0Ytufo0CP31kQv5RW6nlK0-RNtXeTyHeI5kFaqpNFAk84w9xhv1cE7zLfsfbOlVbyGNDbnjlAruSTlnGapu4knF6BJi0DOEX5-pzzuN8DB64FOM14kt_vhGBvoMyn7SGBdP1-VLZdoAzyvQPcjdLd9Ui5PyuRm9rQshHbaRNdimjlIa_GJKmpNtmIXUmc943tPFXOQosOrZyZJfQV6gykftYZwd4Tsp_5lq2IUsMPdfWhVOyIHugUQJrxjmW8m-YbKeCm3MkH9X2uwm5KI2b2UtDpJFnW9ImT6ulP4qxvDeZ0rKimPA7If-YS6hvRpGQafetsXCqFSKbXf6zmKZmlc4WBF7_X6eeWfQKHeeZIJmrqVWY4DvDktjFsyxYxQvlwMgok3YOGfGH3GVjAOhRgP-BsJ5-eGhOjgha657-I&ifkv=AdBytiMagdH1qZ-ggBOjsLOwyibHqWxjXWTWcE8s1xKlK2iq2kl3P2xJeFfuwwsPuUQeedXTpxRBEg
2025-08-10 19:32:56 — Google Sheets (google.com) — https://spreadsheets.google.com/accounts/SetOSID?authuser=0&continue=https://spreadsheets.google.com/?pli%3D1%26authuser%3D0&osidt=ALWU2ctCPQvWucXzXtCf2X135Zw287u70dZPUA01O3v1HAjIx8obvAapbotdk3C9lsyE5TulTd1KA-0Ytufo0CP31kQv5RW6nlK0-RNtXeTyHeI5kFaqpNFAk84w9xhv1cE7zLfsfbOlVbyGNDbnjlAruSTlnGapu4knF6BJi0DOEX5-pzzuN8DB64FOM14kt_vhGBvoMyn7SGBdP1-VLZdoAzyvQPcjdLd9Ui5PyuRm9rQshHbaRNdimjlIa_GJKmpNtmIXUmc943tPFXOQosOrZyZJfQV6gykftYZwd4Tsp_5lq2IUsMPdfWhVOyIHugUQJrxjmW8m-YbKeCm3MkH9X2uwm5KI2b2UtDpJFnW9ImT6ulP4qxvDeZ0rKimPA7If-YS6hvRpGQafetsXCqFSKbXf6zmKZmlc4WBF7_X6eeWfQKHeeZIJmrqVWY4DvDktjFsyxYxQvlwMgok3YOGfGH3GVjAOhRgP-BsJ5-eGhOjgha657-I&ifkv=AdBytiMagdH1qZ-ggBOjsLOwyibHqWxjXWTWcE8s1xKlK2iq2kl3P2xJeFfuwwsPuUQeedXTpxRBEg
2025-08-10 19:33:01 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit
2025-08-10 19:33:01 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit
2025-08-10 19:33:01 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit?ntd=1&usp=sheets_home&ths=true
2025-08-10 19:33:01 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/u/0/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit?ntd=1&usp=sheets_home&ths=true
2025-08-10 19:33:02 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit?gid=1386834576#gid=1386834576
2025-08-10 19:33:02 — 할 일 목록 - Google Sheets (google.com) — https://docs.google.com/spreadsheets/d/1UDA_d8IqGwvSjT3UigrhS3XJj-JvMC0bKbd7NS3diiI/edit?gid=1386834576#gid=1386834576
2025-08-10 19:33:41 — youtube - Google 검색 (google.com) — https://www.google.com/search?q=youtube&oq=youtu&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyDQgBEC4YgwEYsQMYgAQyBggCEEUYOTINCAMQABiDARixAxiABDIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg80gEIMTAxNWowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-10 19:33:41 — youtube - Google 검색 (google.com) — https://www.google.com/search?q=youtube&oq=youtu&gs_lcrp=EgZjaHJvbWUqEAgAEAAYgwEY4wIYsQMYgAQyEAgAEAAYgwEY4wIYsQMYgAQyDQgBEC4YgwEYsQMYgAQyBggCEEUYOTINCAMQABiDARixAxiABDIGCAQQRRg8MgYIBRBFGDwyBggGEEUYPDIGCAcQRRg80gEIMTAxNWowajeoAgCwAgA&sourceid=chrome&ie=UTF-8
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/?app=desktop&hl=ko&gl=KR
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/oops
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/oops
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/signin?action_handle_signin=true&app=desktop&next=https%3A%2F%2Fwww.youtube.com%2F%3Fapp%3Ddesktop%26hl%3Dko%26gl%3DKR&feature=account_registration&authuser=0
2025-08-10 19:33:45 — 죄송합니다. 문제가 발생했습니다. - YouTube (youtube.com) — https://www.youtube.com/signin?action_handle_signin=true&app=desktop&next=https%3A%2F%2Fwww.youtube.com%2F%3Fapp%3Ddesktop%26hl%3Dko%26gl%3DKR&feature=account_registration&authuser=0
2025-08-10 19:34:22 — YouTube (youtube.com) — https://www.youtube.com/
2025-08-10 19:34:22 — YouTube (youtube.com) — https://www.youtube.com/
2025-08-10 19:34:22 — YouTube (youtube.com) — https://www.youtube.com/
2025-08-10 19:34:22 — YouTube (youtube.com) — https://www.youtube.com/
2025-08-10 19:34:22 — nujabes - YouTube (youtube.com) — https://www.youtube.com/results?search_query=nujabes
2025-08-10 19:34:22 — nujabes - YouTube (youtube.com) — https://www.youtube.com/results?search_query=nujabes
2025-08-10 19:34:59 — mbdtf - YouTube (youtube.com) — https://www.youtube.com/results?search_query=mbdtf
2025-08-10 19:34:59 — mbdtf - YouTube (youtube.com) — https://www.youtube.com/results?search_query=mbdtf
2025-08-10 19:35:19 — (explorelane.io) — https://explorelane.io/
2025-08-10 19:35:19 — (explorelane.io) — https://explorelane.io/
2025-08-10 19:35:53 — Document (explorelane.io) — http://explorelane.io/auth/login
2025-08-10 19:35:53 — Document (explorelane.io) — http://explorelane.io/auth/login
2025-08-10 19:35:53 — Document (explorelane.io) — http://explorelane.io/auth/login
2025-08-10 19:35:53 — Document (explorelane.io) — http://explorelane.io/auth/login
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
2025-08-10 19:36:04 — (explorelane.io) — http://explorelane.io/
브라우저 Web Data(/ad1/AppData/Local/Google/Chrome/User Data/Default/Web Data)

크게 John, Victor의 사용자 계정과 패스워드가 저장되어있다.
브라우저 Top Sites

브라우저 Top Site는 한번씩 보는 편이다.
friendhub-online.io와 crendential-vault.io 등 의심되는 사이트가 아주 많다.
1. 전송한 서버 IP
(ad1/AppData/Local/Google/Chrome/User Data/ad_blocker)
다운로드 기록에 있던 ad_blocker가 Chrome User Data에 저장되어있는데, 웹 어셈블리를 발견했다.
manifest.json에서 payload.wasm를 호출하는 것을 보았다.
loader.js와 payload.wasm이 존재하는걸 볼 수 있다.
다음과 같이 파일이 구성되어 있는데, 웹훅 url이 3.35.226.34로 되어있다.
2. 공격자가 노리는 웹사이트 도메인
그러면 이게 정말로 공격에 쓰인건지 wasm를 분석해보자
pwn@meow:~/ctftemp/ad_blocker/wasm$ wasm-objdump -x payload.wasm
payload.wasm: file format wasm 0x1
Section Details:
Type[12]:
- type[0] (i32) -> i32
- type[1] (i32, i32) -> nil
- type[2] (i32, i32) -> i32
- type[3] (i32) -> nil
- type[4] (i32, i32, i32) -> i32
- type[5] () -> nil
- type[6] (i32, i32, i32) -> nil
- type[7] (i32, i32, i32, i32) -> nil
- type[8] (i32, i32, i64) -> i32
- type[9] () -> i32
- type[10] (i32, i32, i32, i32, i32) -> i32
- type[11] (i32, i32, i32, i32) -> i32
Import[1]:
- func[0] sig=7 <env.abort> <- env.abort
Function[105]:
- func[1] sig=0
- func[2] sig=0
- func[3] sig=1
- func[4] sig=1
- func[5] sig=0
- func[6] sig=0
- func[7] sig=0
- func[8] sig=0
- func[9] sig=3
- func[10] sig=1
- func[11] sig=0
- func[12] sig=1
- func[13] sig=3
- func[14] sig=0
- func[15] sig=0
- func[16] sig=0
- func[17] sig=0
- func[18] sig=6
- func[19] sig=3
- func[20] sig=1
- func[21] sig=3
- func[22] sig=0
- func[23] sig=0
- func[24] sig=1
- func[25] sig=1
- func[26] sig=1
- func[27] sig=1
- func[28] sig=0
- func[29] sig=0
- func[30] sig=0
- func[31] sig=1
- func[32] sig=1
- func[33] sig=8
- func[34] sig=5
- func[35] sig=0
- func[36] sig=1
- func[37] sig=3
- func[38] sig=3
- func[39] sig=9
- func[40] sig=5
- func[41] sig=0
- func[42] sig=0
- func[43] sig=0
- func[44] sig=2
- func[45] sig=1
- func[46] sig=6
- func[47] sig=2
- func[48] sig=0
- func[49] sig=1
- func[50] sig=1
- func[51] sig=2 <__new>
- func[52] sig=6
- func[53] sig=0
- func[54] sig=0
- func[55] sig=2
- func[56] sig=4
- func[57] sig=0
- func[58] sig=0
- func[59] sig=0
- func[60] sig=10
- func[61] sig=1
- func[62] sig=1
- func[63] sig=1
- func[64] sig=1
- func[65] sig=0
- func[66] sig=0
- func[67] sig=0
- func[68] sig=0
- func[69] sig=0 <__pin>
- func[70] sig=3 <__unpin>
- func[71] sig=5 <__collect>
- func[72] sig=3
- func[73] sig=1
- func[74] sig=1
- func[75] sig=1
- func[76] sig=0
- func[77] sig=1
- func[78] sig=0
- func[79] sig=1
- func[80] sig=1
- func[81] sig=5
- func[82] sig=5
- func[83] sig=4
- func[84] sig=4
- func[85] sig=2
- func[86] sig=0
- func[87] sig=2
- func[88] sig=4
- func[89] sig=2 <checkUrl>
- func[90] sig=4
- func[91] sig=4
- func[92] sig=0
- func[93] sig=2
- func[94] sig=2
- func[95] sig=7
- func[96] sig=6
- func[97] sig=0
- func[98] sig=0
- func[99] sig=2
- func[100] sig=2
- func[101] sig=2 <checkDomain>
- func[102] sig=1
- func[103] sig=1
- func[104] sig=4
- func[105] sig=11
Table[1]:
- table[0] type=funcref initial=1 max=1
Memory[1]:
- memory[0] pages: initial=1
Global[22]:
- global[0] i32 mutable=0 - init i32=0
- global[1] i32 mutable=0 - init i32=1
- global[2] i32 mutable=0 - init i32=2
- global[3] i32 mutable=1 - init i32=0
- global[4] i32 mutable=1 - init i32=0
- global[5] i32 mutable=1 - init i32=0
- global[6] i32 mutable=1 - init i32=0
- global[7] i32 mutable=1 - init i32=0
- global[8] i32 mutable=1 - init i32=0
- global[9] i32 mutable=1 - init i32=0
- global[10] i32 mutable=1 - init i32=0
- global[11] i32 mutable=1 - init i32=0
- global[12] i32 mutable=1 - init i32=0
- global[13] i32 mutable=0 - init i32=0
- global[14] i32 mutable=1 - init i32=0
- global[15] i32 mutable=0 - init i32=0
- global[16] i32 mutable=0 - init i32=2147483647
- global[17] i32 mutable=0 - init i32=2
- global[18] i32 mutable=0 <__rtti_base> - init i32=1680
- global[19] i32 mutable=0 - init i32=1716
- global[20] i32 mutable=1 - init i32=34484
- global[21] i32 mutable=0 - init i32=34484
Export[8]:
- func[89] <checkUrl> -> "checkUrl"
- func[101] <checkDomain> -> "checkDomain"
- func[51] <__new> -> "__new"
- func[69] <__pin> -> "__pin"
- func[70] <__unpin> -> "__unpin"
- func[71] <__collect> -> "__collect"
- global[18] -> "__rtti_base"
- memory[0] -> "memory"
Start:
- start function: 81
Elem[1]:
- segment[0] flags=0 table=0 count=0 - init i32=1
DataCount:
- data count: 32
Code[105]:
- func[1] size=7
- func[2] size=10
- func[3] size=9
- func[4] size=9
- func[5] size=17
- func[6] size=7
- func[7] size=13
- func[8] size=10
- func[9] size=76
- func[10] size=19
- func[11] size=7
- func[12] size=16
- func[13] size=97
- func[14] size=7
- func[15] size=7
- func[16] size=45
- func[17] size=32
- func[18] size=37
- func[19] size=63
- func[20] size=42
- func[21] size=40
- func[22] size=7
- func[23] size=16
- func[24] size=9
- func[25] size=9
- func[26] size=9
- func[27] size=9
- func[28] size=7
- func[29] size=7
- func[30] size=7
- func[31] size=387
- func[32] size=608
- func[33] size=286
- func[34] size=244
- func[35] size=62
- func[36] size=22
- func[37] size=27
- func[38] size=42
- func[39] size=322
- func[40] size=98
- func[41] size=31
- func[42] size=33
- func[43] size=33
- func[44] size=312
- func[45] size=135
- func[46] size=176
- func[47] size=113
- func[48] size=20
- func[49] size=9
- func[50] size=9
- func[51] size=100 <__new>
- func[52] size=110
- func[53] size=7
- func[54] size=7
- func[55] size=76
- func[56] size=30
- func[57] size=7
- func[58] size=7
- func[59] size=13
- func[60] size=173
- func[61] size=17
- func[62] size=9
- func[63] size=9
- func[64] size=9
- func[65] size=7
- func[66] size=7
- func[67] size=7
- func[68] size=13
- func[69] size=55 <__pin>
- func[70] size=67 <__unpin>
- func[71] size=76 <__collect>
- func[72] size=45
- func[73] size=26
- func[74] size=3
- func[75] size=8
- func[76] size=7
- func[77] size=14
- func[78] size=7
- func[79] size=14
- func[80] size=81
- func[81] size=36
- func[82] size=25
- func[83] size=245
- func[84] size=82
- func[85] size=53
- func[86] size=47
- func[87] size=126
- func[88] size=215
- func[89] size=223 <checkUrl>
- func[90] size=172
- func[91] size=74
- func[92] size=182
- func[93] size=273
- func[94] size=78
- func[95] size=210
- func[96] size=131
- func[97] size=153
- func[98] size=47
- func[99] size=97
- func[100] size=84
- func[101] size=301 <checkDomain>
- func[102] size=130
- func[103] size=49
- func[104] size=397
- func[105] size=100
Data[32]:
- segment[0] memory=0 size=64 - init i32=12
- 000000c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000001c: 2400 0000 4900 6e00 6400 6500 7800 2000 $...I.n.d.e.x. .
- 000002c: 6f00 7500 7400 2000 6f00 6600 2000 7200 o.u.t. .o.f. .r.
- 000003c: 6100 6e00 6700 6500 0000 0000 0000 0000 a.n.g.e.........
- segment[1] memory=0 size=64 - init i32=76
- 000004c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000005c: 2400 0000 7e00 6c00 6900 6200 2f00 7400 $...~.l.i.b./.t.
- 000006c: 7900 7000 6500 6400 6100 7200 7200 6100 y.p.e.d.a.r.r.a.
- 000007c: 7900 2e00 7400 7300 0000 0000 0000 0000 y...t.s.........
- segment[2] memory=0 size=48 - init i32=140
- 000008c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000009c: 1c00 0000 4900 6e00 7600 6100 6c00 6900 ....I.n.v.a.l.i.
- 00000ac: 6400 2000 6c00 6500 6e00 6700 7400 6800 d. .l.e.n.g.t.h.
- segment[3] memory=0 size=64 - init i32=188
- 00000bc: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 00000cc: 2800 0000 4100 6c00 6c00 6f00 6300 6100 (...A.l.l.o.c.a.
- 00000dc: 7400 6900 6f00 6e00 2000 7400 6f00 6f00 t.i.o.n. .t.o.o.
- 00000ec: 2000 6c00 6100 7200 6700 6500 0000 0000 .l.a.r.g.e.....
- segment[4] memory=0 size=64 - init i32=252
- 00000fc: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000010c: 2000 0000 7e00 6c00 6900 6200 2f00 7200 ...~.l.i.b./.r.
- 000011c: 7400 2f00 6900 7400 6300 6d00 7300 2e00 t./.i.t.c.m.s...
- 000012c: 7400 7300 0000 0000 0000 0000 0000 0000 t.s.............
- segment[5] memory=0 size=20 - init i32=320
- 0000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
- 0000150: 0000 0000 ....
- segment[6] memory=0 size=20 - init i32=352
- 0000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
- 0000170: 0000 0000 ....
- segment[7] memory=0 size=48 - init i32=380
- 000017c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000018c: 1400 0000 7e00 6c00 6900 6200 2f00 7200 ....~.l.i.b./.r.
- 000019c: 7400 2e00 7400 7300 0000 0000 0000 0000 t...t.s.........
- segment[8] memory=0 size=20 - init i32=432
- 00001b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
- 00001c0: 0000 0000 ....
- segment[9] memory=0 size=64 - init i32=460
- 00001cc: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 00001dc: 1e00 0000 7e00 6c00 6900 6200 2f00 7200 ....~.l.i.b./.r.
- 00001ec: 7400 2f00 7400 6c00 7300 6600 2e00 7400 t./.t.l.s.f...t.
- 00001fc: 7300 0000 0000 0000 0000 0000 0000 0000 s...............
- segment[10] memory=0 size=48 - init i32=524
- 000020c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000021c: 1c00 0000 7e00 6c00 6900 6200 2f00 7300 ....~.l.i.b./.s.
- 000022c: 7400 7200 6900 6e00 6700 2e00 7400 7300 t.r.i.n.g...t.s.
- segment[11] memory=0 size=48 - init i32=572
- 000023c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000024c: 1200 0000 6700 6f00 6f00 6700 6c00 6500 ....g.o.o.g.l.e.
- 000025c: 6100 6400 7300 0000 0000 0000 0000 0000 a.d.s...........
- segment[12] memory=0 size=48 - init i32=620
- 000026c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000027c: 1600 0000 6400 6f00 7500 6200 6c00 6500 ....d.o.u.b.l.e.
- 000028c: 6300 6c00 6900 6300 6b00 0000 0000 0000 c.l.i.c.k.......
- segment[13] memory=0 size=64 - init i32=668
- 000029c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 00002ac: 2000 0000 6700 6f00 6f00 6700 6c00 6500 ...g.o.o.g.l.e.
- 00002bc: 7400 6100 6700 6d00 6100 6e00 6100 6700 t.a.g.m.a.n.a.g.
- 00002cc: 6500 7200 0000 0000 0000 0000 0000 0000 e.r.............
- segment[14] memory=0 size=48 - init i32=732
- 00002dc: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 00002ec: 1200 0000 6100 6400 7300 6500 7200 7600 ....a.d.s.e.r.v.
- 00002fc: 6900 6300 6500 0000 0000 0000 0000 0000 i.c.e...........
- segment[15] memory=0 size=64 - init i32=780
- 000030c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000031c: 1e00 0000 6600 6100 6300 6500 6200 6f00 ....f.a.c.e.b.o.
- 000032c: 6f00 6b00 2e00 6300 6f00 6d00 2f00 7400 o.k...c.o.m./.t.
- 000033c: 7200 0000 0000 0000 0000 0000 0000 0000 r...............
- segment[16] memory=0 size=48 - init i32=844
- 000034c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000035c: 1200 0000 6100 6e00 6100 6c00 7900 7400 ....a.n.a.l.y.t.
- 000036c: 6900 6300 7300 0000 0000 0000 0000 0000 i.c.s...........
- segment[17] memory=0 size=48 - init i32=892
- 000037c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000038c: 1000 0000 7400 7200 6100 6300 6b00 6900 ....t.r.a.c.k.i.
- 000039c: 6e00 6700 0000 0000 0000 0000 0000 0000 n.g.............
- segment[18] memory=0 size=32 - init i32=940
- 00003ac: 1c00 0000 0000 0000 0000 0000 0200 0000 ................
- 00003bc: 0a00 0000 7400 7200 6100 6300 6b00 0000 ....t.r.a.c.k...
- segment[19] memory=0 size=32 - init i32=972
- 00003cc: 1c00 0000 0000 0000 0000 0000 0200 0000 ................
- 00003dc: 0a00 0000 7000 6900 7800 6500 6c00 0000 ....p.i.x.e.l...
- segment[20] memory=0 size=48 - init i32=1004
- 00003ec: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 00003fc: 0e00 0000 6300 6f00 6c00 6c00 6500 6300 ....c.o.l.l.e.c.
- 000040c: 7400 0000 0000 0000 0000 0000 0000 0000 t...............
- segment[21] memory=0 size=64 - init i32=1052
- 000041c: 3c00 0000 0000 0000 0000 0000 0100 0000 <...............
- 000042c: 2800 0000 5002 0000 8002 0000 b002 0000 (...P...........
- 000043c: f002 0000 2003 0000 6003 0000 9003 0000 .... ...`.......
- 000044c: c003 0000 e003 0000 0004 0000 0000 0000 ................
- segment[22] memory=0 size=48 - init i32=1116
- 000045c: 2c00 0000 0000 0000 0000 0000 0200 0000 ,...............
- 000046c: 1a00 0000 7e00 6c00 6900 6200 2f00 6100 ....~.l.i.b./.a.
- 000047c: 7200 7200 6100 7900 2e00 7400 7300 0000 r.r.a.y...t.s...
- segment[23] memory=0 size=128 - init i32=1164
- 000048c: 7c00 0000 0000 0000 0000 0000 0200 0000 |...............
- 000049c: 5e00 0000 4500 6c00 6500 6d00 6500 6e00 ^...E.l.e.m.e.n.
- 00004ac: 7400 2000 7400 7900 7000 6500 2000 6d00 t. .t.y.p.e. .m.
- 00004bc: 7500 7300 7400 2000 6200 6500 2000 6e00 u.s.t. .b.e. .n.
- 00004cc: 7500 6c00 6c00 6100 6200 6c00 6500 2000 u.l.l.a.b.l.e. .
- 00004dc: 6900 6600 2000 6100 7200 7200 6100 7900 i.f. .a.r.r.a.y.
- 00004ec: 2000 6900 7300 2000 6800 6f00 6c00 6500 .i.s. .h.o.l.e.
- 00004fc: 7900 0000 0000 0000 0000 0000 0000 0000 y...............
- segment[24] memory=0 size=32 - init i32=1292
- 000050c: 1c00 0000 0000 0000 0000 0000 0200 0000 ................
- 000051c: 0600 0000 3a00 2f00 2f00 0000 0000 0000 ....:././.......
- segment[25] memory=0 size=32 - init i32=1324
- 000052c: 1c00 0000 0000 0000 0000 0000 0200 0000 ................
- 000053c: 0000 0000 0000 0000 0000 0000 0000 0000 ................
- segment[26] memory=0 size=32 - init i32=1356
- 000054c: 1c00 0000 0000 0000 0000 0000 0200 0000 ................
- 000055c: 0200 0000 2f00 0000 0000 0000 0000 0000 ..../...........
- segment[27] memory=0 size=96 - init i32=1388
- 000056c: 5c00 0000 0000 0000 0000 0000 0700 0000 \...............
- 000057c: 4c00 0000 3e00 0000 0b00 0000 5000 0000 L...>.......P...
- 000058c: 4d00 0000 5000 0000 2f00 0000 1d00 0000 M...P.../.......
- 000059c: 2c00 0000 4400 0000 3500 0000 f800 0000 ,...D...5.......
- 00005ac: 1700 0000 4400 0000 2000 0000 3500 0000 ....D... ...5...
- 00005bc: 1d00 0000 ef00 0000 2c00 0000 3200 0000 ........,...2...
- segment[28] memory=0 size=64 - init i32=1484
- 00005cc: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 00005dc: 2600 0000 7e00 6c00 6900 6200 2f00 7300 &...~.l.i.b./.s.
- 00005ec: 7400 6100 7400 6900 6300 6100 7200 7200 t.a.t.i.c.a.r.r.
- 00005fc: 6100 7900 2e00 7400 7300 0000 0000 0000 a.y...t.s.......
- segment[29] memory=0 size=64 - init i32=1548
- 000060c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000061c: 2a00 0000 4f00 6200 6a00 6500 6300 7400 *...O.b.j.e.c.t.
- 000062c: 2000 6100 6c00 7200 6500 6100 6400 7900 .a.l.r.e.a.d.y.
- 000063c: 2000 7000 6900 6e00 6e00 6500 6400 0000 .p.i.n.n.e.d...
- segment[30] memory=0 size=64 - init i32=1612
- 000064c: 3c00 0000 0000 0000 0000 0000 0200 0000 <...............
- 000065c: 2800 0000 4f00 6200 6a00 6500 6300 7400 (...O.b.j.e.c.t.
- 000066c: 2000 6900 7300 2000 6e00 6f00 7400 2000 .i.s. .n.o.t. .
- 000067c: 7000 6900 6e00 6e00 6500 6400 0000 0000 p.i.n.n.e.d.....
- segment[31] memory=0 size=36 - init i32=1680
- 0000690: 0800 0000 2000 0000 2000 0000 2000 0000 .... ... ... ...
- 00006a0: 0000 0000 4100 0000 0241 0000 0209 0000 ....A....A......
- 00006b0: 2409 0000 $...
<checkDomain> 저것이 우리가 원하는 정보이다.
내 블로그 글을 보시는 분들껜 정말로 죄송하지만, 동적분석이 너무 하기 싫어서 정적분석입니다.
wasm-decompile payload.wasm > pseudo.c 로 의사 코드를 뽑았다.
export memory memory(initial: 1, max: 0);
global g_a:int = 0;
global g_b:int = 1;
global g_c:int = 2;
global g_d:int = 0;
global g_e:int = 0;
global g_f:int = 0;
global g_g:int = 0;
global g_h:int = 0;
global g_i:int = 0;
global g_j:int = 0;
global g_k:int = 0;
global g_l:int = 0;
global g_m:int = 0;
global g_n:int = 0;
global g_o:int = 0;
global g_p:int = 0;
global g_q:int = 2147483647;
global g_r:int = 2;
export global rtti_base:int = 1680;
global g_t:int = 1716;
global g_u:int = 34484;
global g_v:int = 34484;
table T_a:funcref(min: 1, max: 1);
data d_Indexoutofrange(offset: 12) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00I\00n\00d\00e\00"
"x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00"
"\00\00\00";
data d_libtypedarrayts(offset: 76) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00$\00\00\00~\00l\00i\00b\00"
"/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00"
"\00\00\00";
data d_Invalidlength(offset: 140) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00I\00n\00v\00"
"a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00";
data d_Allocationtoolarge(offset: 188) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00A\00l\00l\00o\00"
"c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00"
"\00\00";
data d_librtitcmsts(offset: 252) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00~\00l\00i\00b\00"
"/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00"
"\00\00\00\00";
data d_f(offset: 320) =
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00";
data d_g(offset: 352) =
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00";
data d_librtts(offset: 380) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\14\00\00\00~\00l\00i\00"
"b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00";
data d_i(offset: 432) =
"\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00";
data d_librttlsfts(offset: 460) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00~\00l\00i\00"
"b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00"
"\00\00\00\00\00\00";
data d_libstringts(offset: 524) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1c\00\00\00~\00l\00i\00"
"b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00";
data d_googleads(offset: 572) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00g\00o\00o\00"
"g\00l\00e\00a\00d\00s\00\00\00\00\00\00\00\00\00\00\00";
data d_doubleclick(offset: 620) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\16\00\00\00d\00o\00u\00"
"b\00l\00e\00c\00l\00i\00c\00k\00\00\00\00\00\00\00";
data d_googletagmanager(offset: 668) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00 \00\00\00g\00o\00o\00g\00"
"l\00e\00t\00a\00g\00m\00a\00n\00a\00g\00e\00r\00\00\00\00\00\00\00\00\00"
"\00\00\00\00";
data d_adservice(offset: 732) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00a\00d\00s\00"
"e\00r\00v\00i\00c\00e\00\00\00\00\00\00\00\00\00\00\00";
data d_facebookcomtr(offset: 780) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1e\00\00\00f\00a\00c\00"
"e\00b\00o\00o\00k\00.\00c\00o\00m\00/\00t\00r\00\00\00\00\00\00\00\00\00"
"\00\00\00\00\00\00";
data d_analytics(offset: 844) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\12\00\00\00a\00n\00a\00"
"l\00y\00t\00i\00c\00s\00\00\00\00\00\00\00\00\00\00\00";
data d_tracking(offset: 892) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\10\00\00\00t\00r\00a\00"
"c\00k\00i\00n\00g\00\00\00\00\00\00\00\00\00\00\00\00\00";
data d_track(offset: 940) =
"\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0a\00\00\00t\00r\00a\00"
"c\00k\00\00\00";
data d_pixel(offset: 972) =
"\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0a\00\00\00p\00i\00x\00"
"e\00l\00\00\00";
data d_collect(offset: 1004) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\0e\00\00\00c\00o\00l\00"
"l\00e\00c\00t\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00";
data d_v(offset: 1052) =
"<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00P\02\00\00\80\02"
"\00\00\b0\02\00\00\f0\02\00\00 \03\00\00`\03\00\00\90\03\00\00\c0\03\00"
"\00\e0\03\00\00\00\04\00\00\00\00\00\00";
data d_libarrayts(offset: 1116) =
",\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\1a\00\00\00~\00l\00i\00"
"b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00";
data d_Elementtypemustbenullableifa(offset: 1164) =
"|\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00^\00\00\00E\00l\00e\00m\00"
"e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00"
"u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00"
"s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00"
"";
data d_y(offset: 1292) =
"\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\06\00\00\00:\00/\00/\00"
"\00\00\00\00\00\00";
data d_z(offset: 1324) =
"\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00"
"\00\00\00\00\00\00\00\00";
data d_aa(offset: 1356) =
"\1c\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\02\00\00\00/\00\00\00"
"\00\00\00\00\00\00\00\00";
data d_LPMPD5D52(offset: 1388) =
"\\00\00\00\00\00\00\00\00\00\00\00\07\00\00\00L\00\00\00>\00\00\00\0b\00"
"\00\00P\00\00\00M\00\00\00P\00\00\00/\00\00\00\1d\00\00\00,\00\00\00D\00"
"\00\005\00\00\00\f8\00\00\00\17\00\00\00D\00\00\00 \00\00\005\00\00\00"
"\1d\00\00\00\ef\00\00\00,\00\00\002\00\00\00";
data d_libstaticarrayts(offset: 1484) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00&\00\00\00~\00l\00i\00b\00"
"/\00s\00t\00a\00t\00i\00c\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00"
"\00\00";
data d_Objectalreadypinned(offset: 1548) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00*\00\00\00O\00b\00j\00e\00"
"c\00t\00 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00"
"\00";
data d_Objectisnotpinned(offset: 1612) =
"<\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00(\00\00\00O\00b\00j\00e\00"
"c\00t\00 \00i\00s\00 \00n\00o\00t\00 \00p\00i\00n\00n\00e\00d\00\00\00"
"\00\00";
data d_fa(offset: 1680) =
"\08\00\00\00 \00\00\00 \00\00\00 \00\00\00\00\00\00\00A\00\00\00\02A\00"
"\00\02\09\00\00$\09\00\00";
import function env_abort(a:int, b:int, c:int, d:int);
function f_b(a:int_ptr):int {
return a[4]
}
function f_c(a:int):int {
return f_b(a - 20)
}
function f_d(a:int_ptr, b:int) {
a[1] = b
}
function f_e(a:int_ptr, b:int) {
a[2] = b
}
function f_f(a:int):int {
f_d(a, a);
f_e(a, a);
return a;
}
function f_g(a:int_ptr):int {
return a[1]
}
function f_h(a:int):int {
return f_g(a) & (3 ^ -1)
}
function f_i(a:int):int {
return f_g(a) & 3
}
function f_j(a:int) {
f_ub(a);
var b:int = g_h;
var c:int = f_h(b);
loop L_b {
if (c != b) {
1;
if (eqz(f_i(c) == 3)) {
env_abort(0, 272, 160, 16);
unreachable;
}
f_cc(c + 20, a);
c = f_h(c);
continue L_b;
}
}
label B_a:
}
function f_k(a:int, b:int) {
f_d(a, (f_g(a) & (3 ^ -1)) | b)
}
function f_l(a:int_ptr):int {
return a[2]
}
function f_m(a:int, b:int) {
f_d(a, b | (f_g(a) & 3))
}
function f_n(a:int) {
var b:int = f_h(a);
if (b == 0) {
1;
if (eqz(if (f_l(a) == 0) { a < g_v } else { 0 })) {
env_abort(0, 272, 128, 18);
unreachable;
}
return ;
}
var c:int = f_l(a);
1;
if (eqz(c)) {
env_abort(0, 272, 132, 16);
unreachable;
}
f_e(b, c);
f_m(c, b);
}
function f_o(a:int_ptr):int {
return a[3]
}
function f_p(a:int_ptr):int {
return a[0]
}
function f_q(a:int):int {
var b:int_ptr = rtti_base;
if (a > b[0]) {
env_abort(32, 400, 21, 28);
unreachable;
}
return f_p(b + 4 + a * 4);
}
function f_r(a:int):int {
var b:int = f_o(a);
return if (b <= 2) { 1 } else { (f_q(b) & 32) != 0 }
}
function f_s(a:int, b:int, c:int) {
var d:int = f_l(b);
f_d(a, b | c);
f_e(a, d);
f_m(d, a);
f_e(b, a);
}
function f(a:int) {
if (a == g_i) {
var b:int = f_l(a);
g_i = if (eqz(b)) {
env_abort(0, 272, 148, 30);
unreachable;
} else {
b
}
}
f_n(a);
f_s(a, g_j, if (f_r(a)) { eqz(g_k) } else { 2 });
}
function f_u(a:int, b:int) {
if (eqz(a)) { return }
var c:int = a - 20;
0;
if (f_i(c) == g_k) {
f(c);
g_g = g_g + 1;
}
}
function f_v(a:int) {
var b:int_ptr = g_u;
loop L_b {
if (b < g_v) {
f_u(b[0], a);
b = b + 4;
continue L_b;
}
}
label B_a:
}
function f_w(a:int_ptr):int {
return a[0]
}
function f_x(a:int):int {
return 4 + (f_w(a) & (3 ^ -1))
}
function f_y(a:int_ptr, b:int) {
a[0] = b
}
function f_z(a:int_ptr, b:int) {
a[0] = b
}
function f_aa(a:int_ptr, b:int) {
a[1] = b
}
function f_ba(a:int_ptr, b:int) {
a[2] = b
}
function f_ca(a:int_ptr):int {
return a[1]
}
function f_da(a:int_ptr):int {
return a[2]
}
function f_ea(a:int_ptr):int {
return a[0]
}
function f_fa(a:int, b:int) {
var h:int;
var e:int;
var f:int;
var l:int;
var m:int;
var n:int;
var c:int = f_w(b);
1;
if (eqz(c & 1)) {
env_abort(0, 480, 268, 14);
unreachable;
}
var d:int = c & (3 ^ -1);
1;
if (eqz(d >= 12)) {
env_abort(0, 480, 270, 14);
unreachable;
}
if (d < 256) {
e = 0;
f = d >> 4;
} else {
var g:int = d;
var i:int = select_if(g, h = 1073741820, g < h);
e = 31 - clz(i);
f = i >> e - 4 ^ 1 << 4;
e = e - 8 - 1;
}
1;
if (eqz(if (e < 23) { f < 16 } else { 0 })) {
env_abort(0, 480, 284, 14);
unreachable;
}
var j:int = f_ca(b);
var k:int = f_da(b);
if (j) { f_ba(j, k) }
if (k) { f_aa(k, j) }
if (b ==
{
l = a;
m = e;
n = f;
l[(m << 4) + n + 24]:int;
goto B_h;
label B_h:
}) {
var o:int = a;
var p:int = e;
var q:int = f;
var r:int = k;
o[(p << 4) + q + 24]:int = r;
label B_j:
if (eqz(k)) {
var u:int = {
var s:int = a;
var t:int = e;
s[t + 1]:int;
goto B_l;
label B_l:
}
var v:int = a;
var w:int = e;
u = u & (1 << f ^ -1);
var x:int = u;
v[w + 1]:int = x;
label B_m:
if (eqz(u)) { f_y(a, f_ea(a) & (1 << e ^ -1)) }
}
}
}
function f_ga(a:int, b:int) {
var o:int;
var l:int;
var m:int;
1;
if (eqz(b)) {
env_abort(0, 480, 201, 14);
unreachable;
}
var c:int = f_w(b);
1;
if (eqz(c & 1)) {
env_abort(0, 480, 203, 14);
unreachable;
}
var e:int = {
var d:int = b;
d + 4 + (f_w(d) & (3 ^ -1));
goto B_c;
label B_c:
}
var f:int = f_w(e);
if (f & 1) {
f_fa(a, e);
f_z(b, c = c + 4 + (f & (3 ^ -1)));
e = {
var g:int = b;
g + 4 + (f_w(g) & (3 ^ -1));
goto B_e;
label B_e:
}
f = f_w(e);
}
if (c & 2) {
var i:int = {
var h:int = b;
(h - 4)[0]:int;
goto B_g;
label B_g:
}
var j:int = f_w(i);
1;
if (eqz(j & 1)) {
env_abort(0, 480, 221, 16);
unreachable;
}
f_fa(a, i);
b = i;
f_z(b, c = j + 4 + (c & (3 ^ -1)));
}
f_z(e, f | 2);
var k:int = c & (3 ^ -1);
1;
if (eqz(k >= 12)) {
env_abort(0, 480, 233, 14);
unreachable;
}
1;
if (eqz(b + 4 + k == e)) {
env_abort(0, 480, 234, 14);
unreachable;
}
(e - 4)[0]:int = b;
if (k < 256) {
l = 0;
m = k >> 4;
} else {
var n:int = k;
var p:int = select_if(n, o = 1073741820, n < o);
l = 31 - clz(p);
m = p >> l - 4 ^ 1 << 4;
l = l - 8 - 1;
}
1;
if (eqz(if (l < 23) { m < 16 } else { 0 })) {
env_abort(0, 480, 251, 14);
unreachable;
}
var t:int = {
var q:int = a;
var r:int = l;
var s:int = m;
q[(r << 4) + s + 24]:int;
goto B_n;
label B_n:
}
f_aa(b, 0);
f_ba(b, t);
if (t) { f_aa(t, b) }
var u:int = a;
var v:int = l;
var w:int = m;
var x:int = b;
u[(v << 4) + w + 24]:int = x;
label B_p:
f_y(a, f_ea(a) | 1 << l);
var aa:int = a;
var ba:int = l;
var ca:int = {
var y:int = a;
var z:int = l;
y[z + 1]:int;
goto B_r;
label B_r:
} |
1 << m;
aa[ba + 1]:int = ca;
label B_q:
}
function f_ha(a:int, b:int, c:long):int {
var d:int = i32_wrap_i64(c);
1;
if (eqz(i64_extend_i32_u(b) <= c)) {
env_abort(0, 480, 382, 14);
unreachable;
}
b = (b + 4 + 15 & (15 ^ -1)) - 4;
d = d & (15 ^ -1);
var f:int = {
var e:int_ptr = a;
e[392];
goto B_b;
label B_b:
}
var g:int = 0;
if (f) {
1;
if (eqz(b >= f + 4)) {
env_abort(0, 480, 389, 16);
unreachable;
}
if (b - 16 == f) {
b = b - 16;
g = f_w(f);
} else {
nop
}
} else {
1;
if (eqz(b >= a + 1572)) {
env_abort(0, 480, 402, 5);
unreachable;
}
}
var h:int = d - b;
if (h < 4 + 12 + 4) { return 0 }
var i:int = h - 2 * 4;
var j:int = b;
f_z(j, (i | 1) | (g & 2));
f_aa(j, 0);
f_ba(j, 0);
f = b + 4 + i;
f_z(f, 0 | 2);
var k:int_ptr = a;
var l:int = f;
k[392] = l;
label B_h:
f_ga(a, j);
return 1;
}
function f_ia() {
0;
var a:int = g_v + 15 & (15 ^ -1);
var b:int = memory_size();
var c:int = (a + 1572 + 65535 & (65535 ^ -1)) >> 16;
if (if (c > b) { memory_grow(c - b) < 0 } else { 0 }) { unreachable }
var d:int = a;
f_y(d, 0);
var e:int_ptr = d;
var f:int = 0;
e[392] = f;
label B_c:
var g:int = 0;
loop L_d {
if (g < 23) {
var h:int = d;
var i:int = g;
var j:int = 0;
h[i + 1]:int = j;
label B_f:
var k:int = 0;
loop L_g {
if (k < 16) {
var l:int = d;
var m:int = g;
var n:int = k;
var o:int = 0;
l[(m << 4) + n + 24]:int = o;
label B_i:
k = k + 1;
continue L_g;
}
}
g = g + 1;
continue L_d;
}
}
var p:int = a + 1572;
0;
f_ha(d, p, i64_extend_i32_s(memory_size()) << 16L);
g_m = d;
}
function f_ja(a:int):int {
var b:int = a - 4;
if (eqz(
if (if (a != 0) { eqz(a & 15) } else { 0 }) { eqz(f_w(b) & 1) } else { 0 })) {
env_abort(0, 480, 562, 3);
unreachable;
}
return b;
}
function f_ka(a:int, b:int) {
0;
f_z(b, f_w(b) | 1);
f_ga(a, b);
}
function f_la(a:int) {
if (a < g_v) { return }
if (eqz(g_m)) { f_ia() }
f_ka(g_m, f_ja(a));
}
function f_ma(a:int) {
if (a < g_v) {
f_d(a, 0);
f_e(a, 0);
} else {
g_d = g_d - f_x(a);
0;
f_la(a + 4);
}
}
function f_na():int {
var a:int;
var b:int = g_f;
if (b == 0) goto B_d;
if (b == 1) goto B_c;
if (b == 2) goto B_b;
goto B_a;
label B_d:
g_f = 1;
g_g = 0;
f_j(0);
g_i = g_j;
return g_g * 1;
label B_c:
var c:int = eqz(g_k);
a = f_h(g_i);
loop L_f {
if (a != g_j) {
g_i = a;
if (f_i(a) != c) {
f_k(a, c);
g_g = 0;
f_cc(a + 20, 0);
return g_g * 1;
}
a = f_h(a);
continue L_f;
}
}
label B_e:
g_g = 0;
f_j(0);
a = f_h(g_i);
if (a == g_j) {
f_v(0);
a = f_h(g_i);
loop L_k {
if (a != g_j) {
if (f_i(a) != c) {
f_k(a, c);
f_cc(a + 20, 0);
}
a = f_h(a);
continue L_k;
}
}
label B_j:
var d:int = g_l;
g_l = g_j;
g_j = d;
g_k = c;
g_i = f_h(d);
g_f = 2;
}
return g_g * 1;
label B_b:
a = g_i;
if (a != g_j) {
g_i = f_h(a);
1;
if (eqz(f_i(a) == eqz(g_k))) {
env_abort(0, 272, 229, 20);
unreachable;
}
f_ma(a);
return 10;
}
f_d(g_j, g_j);
f_e(g_j, g_j);
g_f = 0;
goto B_a;
label B_a:
return 0;
}
function f_oa() {
0;
0;
var a:int = 1024 * 200 / 100;
loop L_a {
a = a - f_na();
if (g_f == 0) {
0;
g_e =
i32_wrap_i64(i64_extend_i32_u(g_d) * i64_extend_i32_u(200) / 100L) +
1024;
0;
return ;
}
if (a > 0) continue L_a;
}
0;
g_e = g_d + 1024 * (g_d - g_e < 1024);
0;
}
function f_pa(a:int):int {
return if (a <= 12) { 12 } else { (a + 4 + 15 & (15 ^ -1)) - 4 }
}
function f_qa(a:int):int {
if (a > 1073741820) {
env_abort(208, 480, 461, 29);
unreachable;
}
return f_pa(a);
}
function f_ra(a:int):int {
return if (a < 536870910) { a + (1 << 27 - clz(a)) - 1 } else { a }
}
function f_sa(a:int, b:int):int {
var c:int;
var d:int;
if (b < 256) {
c = 0;
d = b >> 4;
} else {
var e:int = f_ra(b);
c = 4 * 8 - 1 - clz(e);
d = e >> c - 4 ^ 1 << 4;
c = c - 8 - 1;
}
1;
if (eqz(if (c < 23) { d < 16 } else { 0 })) {
env_abort(0, 480, 334, 14);
unreachable;
}
var h:int = {
var f:int = a;
var g:int = c;
f[g + 1]:int;
goto B_d;
label B_d:
} &
(0 ^ -1) << d;
var i:int = 0;
if (eqz(h)) {
var j:int = f_ea(a) & (0 ^ -1) << c + 1;
if (eqz(j)) {
i = 0
} else {
c = ctz(j);
h = {
var k:int = a;
var l:int = c;
k[l + 1]:int;
goto B_g;
label B_g:
}
1;
if (eqz(h)) {
env_abort(0, 480, 347, 18);
unreachable;
}
i = {
var m:int = a;
var n:int = c;
var o:int = ctz(h);
m[(n << 4) + o + 24]:int;
goto B_i;
label B_i:
}
}
} else {
i = {
var p:int = a;
var q:int = c;
var r:int = ctz(h);
p[(q << 4) + r + 24]:int;
goto B_j;
label B_j:
}
}
return i;
}
function f_ta(a:int, b:int) {
var d:int_ptr;
var g:int;
0;
if (b >= 256) { b = f_ra(b) }
var c:int = memory_size();
b = b +
(4 <<
((c << 16) - 4 !=
{
d = a;
d[392];
goto B_b;
label B_b:
}));
var e:int = (b + 65535 & (65535 ^ -1)) >> 16;
var f:int = c;
var h:int = select_if(f, g = e, f > g);
if (memory_grow(h) < 0) { if (memory_grow(e) < 0) { unreachable } }
var i:int = memory_size();
f_ha(a, c << 16, i64_extend_i32_s(i) << 16L);
}
function f_ua(a:int, b:int, c:int) {
var g:int;
var d:int = f_w(b);
1;
if (eqz(eqz(c + 4 & 15))) {
env_abort(0, 480, 361, 14);
unreachable;
}
var e:int = (d & (3 ^ -1)) - c;
if (e >= 4 + 12) {
f_z(b, c | (d & 2));
var f:int = b + 4 + c;
f_z(f, e - 4 | 1);
f_ga(a, f);
} else {
f_z(b, d & (1 ^ -1));
f_z({
var h:int = b;
h + 4 + (f_w(h) & (3 ^ -1));
goto B_c;
label B_c:
},
f_w({
g = b;
g + 4 + (f_w(g) & (3 ^ -1));
goto B_d;
label B_d:
}) &
(2 ^ -1));
}
}
function f_va(a:int, b:int):int {
var c:int = f_qa(b);
var d:int = f_sa(a, c);
if (eqz(d)) {
f_ta(a, c);
d = f_sa(a, c);
1;
if (eqz(d)) {
env_abort(0, 480, 499, 16);
unreachable;
}
}
1;
if (eqz((f_w(d) & (3 ^ -1)) >= c)) {
env_abort(0, 480, 501, 14);
unreachable;
}
f_fa(a, d);
f_ua(a, d, c);
0;
return d;
}
function f_wa(a:int):int {
if (eqz(g_m)) { f_ia() }
return f_va(g_m, a) + 4;
}
function f_xa(a:int_ptr, b:int) {
a[3] = b
}
function f_ya(a:int_ptr, b:int) {
a[4] = b
}
export function new(a:int, b:int):int {
if (a >= 1073741804) {
env_abort(208, 272, 261, 31);
unreachable;
}
if (g_d >= g_e) { f_oa() }
var c:int = f_wa(16 + a) - 4;
f_xa(c, b);
f_ya(c, a);
f_s(c, g_l, g_k);
g_d = g_d + f_x(c);
var d:int = c + 20;
memory_fill(d, 0, a);
return d;
}
function f_ab(a:int, b:int, c:int) {
if (eqz(b)) { return }
1;
if (eqz(a)) {
env_abort(0, 272, 295, 14);
unreachable;
}
var d:int = b - 20;
if (f_i(d) == g_k) {
var e:int = a - 20;
var f:int = f_i(e);
if (f == eqz(g_k)) {
if (c) { f(e) } else { f(d) }
} else {
if (if (f == 3) { g_f == 1 } else { 0 }) { f(d) }
}
}
}
function f_bb(a:int_ptr):int {
return a[0]
}
function f_cb(a:int_ptr):int {
return a[4]
}
function f_db(a:int, b:int):int {
var e:int;
var f:int;
var c:int = a - 20;
if (b <= (f_w(c) & (3 ^ -1)) - 16) {
f_ya(c, b);
return a;
}
var d:int = new(b, f_o(c));
memory_copy(d, a, select_if(e = b, f = f_cb(c), e < f));
return d;
}
function f_eb(a:int, b:int, c:int):int {
var d:int = new(a, b);
if (c) { memory_copy(d, c, a) }
return d;
}
function f_fb(a:int_ptr):int {
return a[3]
}
function f_gb(a:int_ptr):int {
return a[1]
}
function f_hb(a:int):int {
return f_b(a - 20) >> 1
}
function f_ib(a:int, b:int, c:int, d:int, e:int):int {
var f:int = a + (b << 1);
var g:int = c + (d << 1);
0 < 2;
if (if (e >= 4) { eqz((f & 7) | (g & 7)) } else { 0 }) {
loop L_d {
if (f[0]:long != g[0]:long) { goto B_c }
f = f + 8;
g = g + 8;
e = e - 4;
if (e >= 4) continue L_d;
}
label B_c:
}
loop L_g {
var h:int = e;
e = h - 1;
if (h) {
var i:int = f[0]:ushort;
var j:int = g[0]:ushort;
if (i != j) { return i - j }
f = f + 2;
g = g + 2;
continue L_g;
}
}
label B_f:
return 0;
}
function f_jb(a:int_ptr, b:int) {
a[0] = b;
f_ab(a, b, 0);
}
function f_kb(a:int_ptr, b:int) {
a[1] = b
}
function f_lb(a:int_ptr, b:int) {
a[2] = b
}
function f_mb(a:int_ptr, b:int) {
a[3] = b
}
function f_nb(a:int_ptr):int {
return a[3]
}
function f_ob(a:int_ptr):int {
return a[2]
}
function f_pb(a:int_ptr):int {
return a[1]
}
function f_qb(a:int):int {
return f_b(a - 20) >> 2
}
export function pin(a:int):int {
if (a) {
var b:int = a - 20;
if (f_i(b) == 3) {
env_abort(1568, 272, 338, 7);
unreachable;
}
f_n(b);
f_s(b, g_h, 3);
}
return a;
}
export function unpin(a:int) {
if (eqz(a)) { return }
var b:int = a - 20;
if (f_i(b) != 3) {
env_abort(1632, 272, 352, 5);
unreachable;
}
if (g_f == 1) {
f(b)
} else {
f_n(b);
f_s(b, g_l, g_k);
}
}
export function collect() {
0;
if (g_f > 0) {
loop L_b {
if (g_f != 0) {
f_na();
continue L_b;
}
}
}
f_na();
loop L_e {
if (g_f != 0) {
f_na();
continue L_e;
}
}
label B_d:
g_e =
i32_wrap_i64(i64_extend_i32_u(g_d) * i64_extend_i32_u(200) / 100L) +
1024;
0;
0;
}
function f_ub(a:int) {
f_u(32, a);
f_u(160, a);
f_u(1184, a);
f_u(208, a);
f_u(1568, a);
f_u(1632, a);
}
function f_vb(a:int_ptr, b:int) {
f_wb(a, b);
var c:int = a[0];
if (c) { f_u(c, b) }
}
function f_wb(a:int, b:int) {
nop
}
function f_xb(a:int, b:int) {
f_vb(a, b)
}
function f_yb(a:int_ptr):int {
return a[0]
}
function f_zb(a:int, b:int) {
f_wb(a, b);
f_yc(a, b);
}
function f_ac(a:int_ptr):int {
return a[0]
}
function f_bc(a:int, b:int) {
f_wb(a, b);
f_zc(a, b);
}
function f_cc(a:int, b:int) {
br_table[B_i, B_h, B_g, B_f, B_e, B_d, B_c, B_b, ..B_a](
(a - 8)[0]:int)
label B_i:
return ;
label B_h:
return ;
label B_g:
return ;
label B_f:
f_vb(a, b);
return ;
label B_e:
f_xb(a, b);
return ;
label B_d:
f_zb(a, b);
return ;
label B_c:
f_bc(a, b);
return ;
label B_b:
return ;
label B_a:
unreachable;
}
function f_dc() {
g_e = (memory_size() << 16) - g_v >> 1;
g_h = f_f(320);
g_j = f_f(352);
g_l = f_f(432);
}
function f_ec() {
if (g_u < g_t) {
env_abort(34512, 34560, 1, 1);
unreachable;
}
}
function f_fc(a:int, b:int, c:int):int {
var d:int;
var g:int;
var i:{ a:int, b:int, c:int }
var j:int;
g_u = g_u - 12;
f_ec();
g_u[0]:long = 0L;
g_u[2]:int = 0;
j = {
g_u[0]:int = (d = a);
var e:int = b;
var f:int = c;
j = d;
g_u[1]:int = j;
var h:int = f_c(j);
if (e > h | (e & 0)) {
env_abort(32, 96, 1860, 5);
unreachable;
}
if (f < 0) {
if (f == -1) {
if (h & 0) {
env_abort(160, 96, 1865, 9);
unreachable;
}
g = h - e;
} else {
env_abort(160, 96, 1869, 7);
unreachable;
}
} else {
g = f << 0;
if (e + g > h) {
env_abort(160, 96, 1874, 7);
unreachable;
}
}
g_u[2]:int = (i = new(12, 4));
i.a = d;
f_ab(i, d, 0);
i.c = g;
i.b = d + e;
i;
goto B_a;
label B_a:
}
g_u = g_u + 12;
return j;
}
function f_gc(a:int, b:int, c:int):int {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
br_table[B_c, B_b, B_a, ..B_d](g_o - 1)
label B_d:
unreachable;
label B_c:
b = 0;
label B_b:
c = -1;
label B_a:
var d:int = a;
g_u[0]:int = d;
d = f_fc(d, b, c);
g_u = g_u + 4;
return d;
}
function f_hc(a:int, b:int):int {
var c:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
let t0 = a;
c = a;
g_u[0]:int = c;
c = f_ad(t0, f_c(c), b);
g_u = g_u + 4;
return c;
}
function f_ic(a:int):int {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
var b:int = a;
g_u[0]:int = b;
b = f_fb(b);
g_u = g_u + 4;
return b;
}
function f_jc(a:int, b:int):int {
var d:int;
var c:int;
g_u = g_u - 8;
f_ec();
g_u[0]:long = 0L;
let t0 = b;
d = a;
g_u[0]:int = d;
if (t0 >= f_fb(d)) {
env_abort(32, 1136, 114, 42);
unreachable;
}
let t1 = g_u;
d = a;
g_u[0]:int = d;
t1[1]:int = (c = f_gb(d)[b]:int);
1;
eqz(0);
if (eqz(c)) {
env_abort(1184, 1136, 118, 40);
unreachable;
}
d = c;
g_u = g_u + 8;
return d;
}
function f_kc(a:int, b:int, c:int):int {
var g:int;
var i:int;
g_u = g_u - 8;
f_ec();
g_u[0]:long = 0L;
var k:int = b;
g_u[0]:int = k;
var d:int = f_hb(k);
if (eqz(d)) {
k = 0;
g_u = g_u + 8;
return k;
}
k = a;
g_u[0]:int = k;
var e:int = f_hb(k);
if (eqz(e)) {
k = -1;
g_u = g_u + 8;
return k;
}
var f:int = c;
var h:int = select_if(f, g = 0, f > g);
var j:int = select_if(h, i = e, h < i);
e = e - d;
loop L_c {
if (j <= e) {
k = a;
g_u[0]:int = k;
let t0, t1 = k, j;
k = b;
g_u[1]:int = k;
if (eqz(f_ib(t0, t1, k, 0, d))) {
k = j;
g_u = g_u + 8;
return k;
}
j = j + 1;
continue L_c;
}
}
k = -1;
g_u = g_u + 8;
return k;
}
export function checkUrl(a:int, b:int):int {
var h:int;
var c:int;
var d:int;
var f:int;
g_u = g_u - 24;
f_ec();
memory_fill(g_u, 0, 24);
let t0 = g_u;
h = a;
g_u[0]:int = h;
let t1, t2 = h, b;
g_o = 2;
t0[1]:int = (c = f_gc(t1, t2, 0));
let t3 = g_u;
h = c;
g_u[2]:int = h;
h = f_bb(h);
g_u[0]:int = h;
t3[3]:int = (d = f_hc(h, 0));
g_u[4]:int = (f = f_bd(10, 2, 5, 1072));
var g:int = 0;
loop L_a {
let t4 = g;
h = f;
g_u[0]:int = h;
if (t4 < f_ic(h)) {
h = d;
g_u[0]:int = h;
let t5 = h;
h = f;
g_u[5]:int = h;
h = f_jc(h, g);
g_u[2]:int = h;
if (f_kc(t5, h, 0) >= 0) {
h = 0;
g_u = g_u + 24;
return h;
}
g = g + 1;
continue L_a;
}
}
h = 1;
g_u = g_u + 24;
return h;
}
function f_mc(a:int, b:int, c:int):int {
var h:int;
var j:int;
var l:int;
var n:int;
g_u = g_u - 8;
f_ec();
g_u[0]:long = 0L;
var d:int = b;
var e:int = c;
var o:int = a;
g_u[0]:int = o;
var f:int = f_hb(o);
if (d < 0) {
var g:int = f + d;
d = select_if(g, h = 0, g > h);
}
var i:int = e;
var k:int = select_if(i, j = 0, i > j);
var m:int = select_if(k, l = f - d, k < l) << 1;
if (m <= 0) {
o = 1344;
g_u = g_u + 8;
return o;
}
g_u[1]:int = (n = new(m, 2));
memory_copy(n, a + (d << 1), m);
o = n;
g_u = g_u + 8;
return o;
}
function f_nc(a:int, b:int, c:int):int {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
br_table[B_b, B_a, ..B_c](g_o - 1)
label B_c:
unreachable;
label B_b:
c = g_q;
label B_a:
var d:int = a;
g_u[0]:int = d;
d = f_mc(d, b, c);
g_u = g_u + 4;
return d;
}
function f_oc(a:int):int {
g_u = g_u - 12;
f_ec();
g_u[0]:long = 0L;
g_u[2]:int = 0;
var d:int = a;
g_u[0]:int = d;
let t0 = d;
d = 1312;
g_u[1]:int = d;
var b:int = f_kc(t0, d, 0);
if (b >= 0) {
let t1 = g_u;
d = a;
g_u[0]:int = d;
let t2, t3 = d, b + 3;
g_o = 1;
t1[2]:int = (a = f_nc(t2, t3, 0));
}
d = a;
g_u[0]:int = d;
let t4 = d;
d = 1376;
g_u[1]:int = d;
var c:int = f_kc(t4, d, 0);
if (c >= 0) {
let t5 = g_u;
d = a;
g_u[0]:int = d;
t5[2]:int = (a = f_mc(d, 0, c));
}
d = a;
g_u = g_u + 12;
return d;
}
function f_pc(a:int, b:int):int {
var d:int;
var f:int;
g_u = g_u - 16;
f_ec();
g_u[0]:long = 0L;
g_u[1]:long = 0L;
if (eqz(a)) { g_u[0]:int = (a = new(16, 6)) }
var g:int = a;
g_u[1]:int = g;
f_jb(g, 0);
g = a;
g_u[1]:int = g;
f_kb(g, 0);
g = a;
g_u[1]:int = g;
f_lb(g, 0);
g = a;
g_u[1]:int = g;
f_mb(g, 0);
if (b > 1073741820 >> 2) {
env_abort(160, 1136, 70, 60);
unreachable;
}
var c:int = b;
var e:int = select_if(c, d = 8, c > d) << 2;
g_u[2]:int = (f = new(e, 1));
2 != g_c;
g = a;
g_u[1]:int = g;
let t0 = g;
g = f;
g_u[3]:int = g;
f_jb(t0, g);
g = a;
g_u[1]:int = g;
f_kb(g, f);
g = a;
g_u[1]:int = g;
f_lb(g, e);
g = a;
g_u[1]:int = g;
f_mb(g, b);
g = a;
g_u = g_u + 16;
return g;
}
function f_qc(a:int, b:int):int {
var c:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
let t0 = b;
c = a;
g_u[0]:int = c;
if (t0 >= f_hb(c)) {
c = -1;
g_u = g_u + 4;
return c;
}
c = a[b]:ushort;
g_u = g_u + 4;
return c;
}
function f_rc(a:{ a:int, b:int, c:int }, b:int, c:int, d:int) {
var h:int;
var k:int;
var m:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
var o:int = a;
g_u[0]:int = o;
var e:int = f_ob(o);
if (b > e >> c) {
if (b > 1073741820 >> c) {
env_abort(160, 1136, 19, 48);
unreachable;
}
o = a;
g_u[0]:int = o;
var f:int = f_bb(o);
var g:int = b;
var i:int = select_if(g, h = 8, g > h) << c;
if (d) {
var j:int = e << 1;
var l:int = select_if(j, k = 1073741820, j < k);
i = select_if(l, m = i, l > m);
}
var n:int = f_db(f, i);
2 != g_c;
if (n != f) {
a.a = n;
a.b = n;
f_ab(a, n, 0);
}
a.c = i;
}
g_u = g_u + 4;
}
function f_sc(a:int, b:int, c:int) {
var d:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
let t0 = b;
d = a;
g_u[0]:int = d;
if (t0 >= f_nb(d)) {
if (b < 0) {
env_abort(32, 1136, 130, 22);
unreachable;
}
f_rc(a, b + 1, 2, 1);
d = a;
g_u[0]:int = d;
f_mb(d, b + 1);
}
d = a;
g_u[0]:int = d;
f_pb(d)[b]:int = c;
0;
g_u = g_u + 4;
}
function f_tc(a:int):int {
var f:int;
var b:int;
g_u = g_u - 8;
f_ec();
g_u[0]:long = 0L;
let t0, t1 = g_u, 0;
f = a;
g_u[0]:int = f;
t0[1]:int = (b = f_pc(t1, f_hb(f)));
var c:int = 0;
loop L_a {
let t2 = c;
f = a;
g_u[0]:int = f;
if (t2 < f_hb(f)) {
f = a;
g_u[0]:int = f;
var d:int = f_qc(f, c);
var e:int = ((d ^ 90) + 49) * 3 % 256;
f = b;
g_u[0]:int = f;
f_sc(f, c, e);
c = c + 1;
continue L_a;
}
}
f = b;
g_u = g_u + 8;
return f;
}
function f_uc(a:int):int {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
var b:int = a;
g_u[0]:int = b;
b = f_nb(b);
g_u = g_u + 4;
return b;
}
function f_vc(a:int, b:int):int {
var d:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
let t0 = b;
d = a;
g_u[0]:int = d;
if (t0 >= f_nb(d)) {
env_abort(32, 1136, 114, 42);
unreachable;
}
d = a;
g_u[0]:int = d;
var c:int = f_pb(d)[b]:int;
0;
d = c;
g_u = g_u + 4;
return d;
}
function f_wc(a:int, b:int):int {
var d:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
let t0 = b;
d = a;
g_u[0]:int = d;
if (t0 >= f_qb(d)) {
env_abort(32, 1504, 78, 41);
unreachable;
}
var c:int = a[b]:int;
0;
d = c;
g_u = g_u + 4;
return d;
}
export function checkDomain(a:int, b:int):int {
var j:int;
var c:int;
var d:int;
var e:int;
var f:int;
var h:int;
g_u = g_u - 28;
f_ec();
memory_fill(g_u, 0, 28);
let t0 = g_u;
j = a;
g_u[0]:int = j;
let t1, t2 = j, b;
g_o = 2;
t0[1]:int = (c = f_gc(t1, t2, 0));
let t3 = g_u;
j = c;
g_u[2]:int = j;
j = f_bb(j);
g_u[0]:int = j;
t3[3]:int = (d = f_hc(j, 0));
let t4 = g_u;
j = d;
g_u[0]:int = j;
t4[4]:int = (e = f_oc(j));
let t5 = g_u;
j = e;
g_u[0]:int = j;
t5[5]:int = (f = f_tc(j));
g_u[6]:int = (h = f_eb(76, 7, 1408));
j = f;
g_u[0]:int = j;
let t6 = f_uc(j);
j = h;
g_u[0]:int = j;
if (t6 != f_qb(j)) {
j = 0;
g_u = g_u + 28;
return j;
}
var i:int = 0;
loop L_b {
let t7 = i;
j = h;
g_u[0]:int = j;
if (t7 < f_qb(j)) {
j = f;
g_u[0]:int = j;
let t8 = f_vc(j, i);
j = h;
g_u[0]:int = j;
if (t8 != f_wc(j, i)) {
j = 0;
g_u = g_u + 28;
return j;
}
i = i + 1;
continue L_b;
}
}
j = 1;
g_u = g_u + 28;
return j;
}
function f_yc(a:int, b:int) {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
1;
var f:int = a;
g_u[0]:int = f;
var c:int_ptr = f_gb(f);
let t0 = c;
f = a;
g_u[0]:int = f;
var d:int = t0 + (f_fb(f) << 2);
loop L_b {
if (c < d) {
var e:int = c[0];
if (e) { f_u(e, b) }
c = c + 4;
continue L_b;
}
}
label B_a:
f = a;
g_u[0]:int = f;
f_u(f_yb(f), b);
g_u = g_u + 4;
}
function f_zc(a:int, b:int) {
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
0;
var c:int = a;
g_u[0]:int = c;
f_u(f_ac(c), b);
g_u = g_u + 4;
}
function f_ad(a:int, b:int, c:int):int {
var f:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
var d:ubyte_ptr = a;
var e:int = a + b;
if (eqz(e >= d)) {
env_abort(0, 544, 770, 7);
unreachable;
}
g_u[0]:int = (f = new(b << 1, 2));
var g:int = f;
loop L_c {
if (d < e) {
var h:int = d[0];
d = d + 1;
if (eqz(h & 128)) {
if (c & eqz(h)) { goto B_b }
g[0]:short = h;
} else {
if (e == d) { goto B_b }
var i:int = d[0] & 63;
d = d + 1;
if ((h & 224) == 192) {
g[0]:short = (h & 31) << 6 | i
} else {
if (e == d) { goto B_b }
var j:int = d[0] & 63;
d = d + 1;
if ((h & 240) == 224) {
h = ((h & 15) << 12 | i << 6) | j
} else {
if (e == d) { goto B_b }
h = (((h & 7) << 18 | i << 12) | j << 6) | (d[0] & 63);
d = d + 1;
}
if (h < 65536) {
g[0]:short = h
} else {
h = h - 65536;
var k:int = h >> 10 | 55296;
var l:int = (h & 1023) | 56320;
g[0]:int = k | l << 16;
g = g + 2;
}
}
}
g = g + 2;
continue L_c;
}
}
label B_b:
var m:int = f_db(f, g - f);
g_u = g_u + 4;
return m;
}
function f_bd(a:int, b:int, c:int, d:int):int {
var f:int;
g_u = g_u - 4;
f_ec();
g_u[0]:int = 0;
var e:int = a << b;
g_u[0]:int = (f = f_eb(e, 1, d));
var g:{ a:int, b:int, c:int, d:int } = new(16, c);
g.a = f;
f_ab(g, f, 0);
g.b = f;
g.c = e;
g.d = a;
var h:int = g;
g_u = g_u + 4;
return h;
}
wasm-decompile payload.wasm > pseudo.c
분석 결과
// checkDomain(a:int ptr, b:int len) -> int
int checkDomain(int a, int b) {
// 슬라이스 생성
s = f_gc(a, b, 0);
// 문자열 객체 꺼내기 -> UTF
t = f_bb(s);
u = f_hc(t, 0);
// 호스트 추출: "://" 이후, 다음 "/" 앞까지
host = f_oc(u);
// 문자 변환((ch ^ 90)+49)*3 % 256 를 전 문자에 적용 -> 바이트 시퀀스
sig = f_tc(host);
// 고정 서명 벡터 로드(데이터 세그먼트 1408부터, 길이 76 바이트 추정)
target = f_eb(76, 7, 1408);
// 검사
if (len(sig) != len(target)) return 0;
for (i = 0; i < len(sig); i++) {
if (sig[i] != target[i]) return 0;
}
return 1;
}
import struct
WASM_PATH = "payload.wasm"
def read_uleb(data, pos, maxbits=64):
res = 0; shift = 0
while True:
b = data[pos]; pos += 1
res |= (b & 0x7F) << shift
if (b & 0x80) == 0: break
shift += 7
if shift >= maxbits: raise ValueError("ULEB too large")
return res, pos
def parse_data_segments(blob: bytes):
assert blob[:4] == b"\x00asm"
pos = 8
sections = []
while pos < len(blob):
sec_id = blob[pos]; pos += 1
size, pos = read_uleb(blob, pos)
sections.append((sec_id, pos, pos+size))
pos += size
segs = []
for sec_id, start, end in sections:
if sec_id != 11: # data section
continue
p = start
count, p = read_uleb(blob, p)
for _ in range(count):
flags = blob[p]; p += 1
offset = None
if flags in (0, 2):
if flags == 2:
_, p = read_uleb(blob, p) # memidx skip
assert blob[p] == 0x41; p += 1 # i32.const
offset, p = read_uleb(blob, p, 33)
assert blob[p] == 0x0B; p += 1 # end
size, p = read_uleb(blob, p)
data = blob[p:p+size]; p += size
segs.append({"offset": offset, "data": data})
return segs
def build_init_memory(segs):
max_end = 0
for s in segs:
if s["offset"] is not None:
max_end = max(max_end, s["offset"] + len(s["data"]))
mem = bytearray(max_end + 64)
for s in segs:
if s["offset"] is not None:
o = s["offset"]; d = s["data"]
mem[o:o+len(d)] = d
return bytes(mem)
def unmap_byte(y: int) -> int:
inv3 = 171 # modular inverse of 3 mod 256
t = (y * inv3) & 0xFF
t = (t - 49) & 0xFF
return t ^ 90
def decode_signature(mem: bytes, addr: int, length: int) -> str:
raw = mem[addr:addr+length]
words = [raw[i:i+4] for i in range(0, len(raw), 4)]
if all(len(w) == 4 for w in words) and sum(w[1]!=0 or w[2]!=0 or w[3]!=0 for w in words) == 0:
sig_bytes = bytes(w[0] for w in words)
else:
sig_bytes = raw
decoded_bytes = bytes(unmap_byte(b) for b in sig_bytes)
try:
return decoded_bytes.decode("ascii")
except UnicodeDecodeError:
return decoded_bytes.decode("utf-8", "replace")
if __name__ == "__main__":
with open(WASM_PATH, "rb") as f:
blob = f.read()
segs = parse_data_segments(blob)
mem = build_init_memory(segs)
addr, length = 1408, 76 # f_eb(76, 7, 1408)
raw = mem[addr:addr+length]
print(f"Data segments: {len(segs)}")
print(f"Slice @{addr} len {length} hex[:32]={raw[:32].hex()} ints[:16]={list(raw[:16])}")
print("Decoded string")
print(decode_signature(mem, addr, length))
credential-vault.io 인걸 확인해볼 수 있다.
3. John의 계정
현재 키워드, 아이디, 패스워드가 다음과 같이 있다.
username john
password johnPassword!
password th1s1sjohn
password thisisjohn!
password thisisjohn
keyword kanye west
username th1s1sj0hn
password Passw0rd12#$
username j0hn_1234
password J0hNp4ssW0Rd
identifier th1s1sj0hn0008
username v1ct0r 2
password th1s1sv1ct0r
password johnpw12$%!
password temppass
password th1s1sv1ct0r!
username john
password johnPassword!
password th1s1sjohn
password thisisjohn!
password thisisjohn
keyword kanye west
username th1s1sj0hn
password Passw0rd12#$
username j0hn_1234
password J0hNp4ssW0Rd
identifier th1s1sj0hn0008
username v1ct0r
password th1s1sv1ct0r
password johnpw12$%!
password temppass
password th1s1sv1ct0r!
credential-vault.io를 검색하고 마지막 유효 스냅샷은 th1s1sj0hn, Passw0rd12#$ 인 것을 확인할 수 있다.
추가로 Tabs에서도 알아낼 수 있다.
최종 플래그는 다음과 같다.
cce2025{3.35.226.34_credential-vault.io_th1s1sj0hn_Passw0rd12#$}
'CTF' 카테고리의 다른 글
[Rev] CCE 2025 Qual - Directcalc write-up (3) | 2025.08.16 |
---|---|
[Crypto] Linear congruential generator(LCG) Recovery (3) | 2025.08.09 |
[Crypto] SASCTF 2025 - blindspot write-up (0) | 2025.05.26 |
[Crypto] SASCTF 2025 - bigbabycode write-up (0) | 2025.05.26 |
[Network Forensic] MISC 풀어보기 (0) | 2024.05.20 |