카카오톡 계정 여러 개 쓰시는 분들 많으실 겁니다.
저는 회사 계정이랑 개인 계정을 따로 쓰는데, PC에서 카카오톡이 하나밖에 안 켜져서 좀 불편했습니다. 폰으로 왔다갔다 하기도 귀찮고.. 그래서 검색을 좀 해봤는데, 대부분 Sandboxie 쓰라는 글이었습니다. 근데 이거 써봤는데 최대 2개까지밖에 안 됩니다.또 별도 격리된 환경에서 실행되는거라 용도에 부합하지 않을뿐더러 저는 부계정까지 6개를 써야 해서 이것도 답이 안 됐습니다.
결국 직접 만들었습니다. 개수 제한 없이 카카오톡 여러 개 실행하는 프로그램입니다.
카카오톡은 왜 하나만 실행될까?
프로그램이 "하나만 실행되게" 하는 방법은 보통 정해져 있습니다. Windows에서는 Mutex나 Semaphore라는 커널 오브젝트를 만들어서 "나 실행 중이야"라고 표시해두는 방식을 많이 씁니다.
카카오톡도 이 방식을 쓰는지 확인해봤습니다.
Microsoft에서 제공하는 Sysinternals Handle 도구를 쓰면 프로세스의 핸들 목록을 볼 수 있습니다. 카카오톡 하나만 켜고 핸들을 확인해봤습니다.

.\handle64.exe -a -p KakaoTalk.exe | findstr Semaphore
카카오톡이 사용하는 Semaphore 이름은 이렇게 생겼습니다.
Semaphore가 여러 개 나옵니다. 이름 있는 것들을 보면
- `WilStaging`, `WilError` → Windows 시스템용
- `{97C4DDD9-D36D-48b5-BB47-2C8299BA7D1E}` → GUID 형태
GUID 형태는 보통 앱 개발자가 만든 겁니다. 이게 의심돼서 닫아봤더니 카카오톡이 새로 열렸습니다. 범인 찾았습니다.
카카오톡 시작
↓
Semaphore "{97C4DDD9-...}" 있나?
↓
있음 → "이미 실행 중이네" → 종료
없음 → Semaphore 생성 → 정상 실행
그래서 카카오톡을 하나 켜면 Semaphore가 생기고, 그 다음부터는 이미 있으니까 실행이 안 되는 겁니다.
그럼 어떻게 여러 개 실행하나?
간단합니다. 저 Semaphore를 닫아버리면 됩니다.
Semaphore가 사라지면 새 카카오톡은 "어? 아무것도 없네? 내가 첫 번째구나" 하고 실행됩니다.
Windows에서 Semaphore 같은 커널 오브젝트는 핸들(Handle)을 통해 접근합니다. 이 핸들을 닫으면 Semaphore도 사라집니다.
Microsoft에서 제공하는 Sysinternals Handle이라는 도구를 쓰면 특정 프로세스의 핸들을 조회하고 닫을 수 있습니다.
그래서 이걸 자동해주는 스크립트를 작성했습니다.
Sandboxie랑 뭐가 다른가

Sandboxie는 가상 환경을 만들어서 거기서 카카오톡을 하나 더 실행하는 방식입니다. 그래서 일반 실행 1개 + Sandboxie 1개 = 최대 2개입니다.
제 방식은 카카오톡 자체를 건드리는 게 아니라 중복 실행 막는 장치만 해제합니다. 그래서 3개든 5개든 원하는 만큼 켤 수 있습니다.
프로그램 다운로드
먼저파일 두 개를 받아야 합니다.

제가 만든 스크립트는 GitHub에서 받으시면 됩니다. (GitHub Relase링크)

handle64.exe는 마이크로소프트 공식 사이트에서 받아야 합니다. 저작권 때문에 제가 같이 배포를 못 합니다. (Microsoft 다운로드 링크)
다 받으셨으면 압축을 풀어handle64.exe를 한 폴더에 넣으면 됩니다.

kakao_multi.bat, kakao_multi.ps1, handle64.exe 세 개가 한 폴더에 있으면 준비 완료입니다.
사용법
카카오톡을 먼저 실행하고 첫 번째 계정으로 로그인합니다.
그 다음 kakao_multi.bat 파일을 우클릭해서 관리자 권한으로 실행합니다. 핸들을 닫으려면 관리자 권한이 꼭 필요합니다.

이런 화면이 나오면 성공입니다. Enter키를 입력하여 종료하셔도 됩니다.
이제 카카오톡을 다시 실행하면 두 번째 계정으로 로그인할 수 있습니다.
3개 이상 필요하면 bat 파일 실행하고 카카오톡 실행하는 걸 반복하면 됩니다.
코드 설명
기술적인 내용이 궁금하신 분들을 위해 코드도 설명드리겠습니다.
전체 흐름
kakao_multi.bat 실행
↓
관리자 권한으로 kakao_multi.ps1 실행
↓
handle64.exe로 KakaoTalk.exe의 핸들 목록 조회
↓
"{97C4DDD9-...}" Semaphore 핸들 찾기
↓
handle64.exe로 해당 핸들 닫기
↓
새 카카오톡 실행 가능
kakao_multi.bat
@echo off
cd /d "%~dp0"
powershell -Command "Start-Process powershell -ArgumentList '-ExecutionPolicy Bypass -File \"%~dp0kakao_multi.ps1\"' -Verb RunAs"
bat 파일은 단순합니다. 관리자 권한으로 ps1 파일을 실행하는 역할만 합니다.
-Verb RunAs가 관리자 권한 요청하는 부분입니다.
kakao_multi.ps1 핵심 부분
먼저 handle64.exe로 카카오톡의 모든 핸들을 조회합니다.
$output = & $handleExe -a -p KakaoTalk.exe -accepteula 2>&1 | Out-String
-a는 모든 핸들, -p KakaoTalk.exe는 카카오톡 프로세스만 필터링합니다.
출력이 이런 식으로 나옵니다.
KakaoTalk.exe pid: 12345 DESKTOP\user
658: Semaphore \Sessions\1\BaseNamedObjects\{97C4DDD9-D36D-48b5-BB47-2C8299BA7D1E}
여기서 97C4DDD9-D36D-48b5-BB47-2C8299BA7D1E가 포함된 줄을 찾습니다.
if ($line -match "97C4DDD9-D36D-48b5-BB47-2C8299BA7D1E" -and $line -match "^\s*([0-9A-Fa-f]+):") {
$handle = $matches[1]
정규식으로 핸들 번호(658)를 추출합니다.
그리고 이 핸들을 닫습니다.
$result = & $handleExe -c $handle -p $currentPid -y 2>&1 | Out-String
-c가 핸들을 닫는 옵션이고, -y는 확인 없이 바로 실행하는 옵션입니다.
핸들이 닫히면 Semaphore가 사라지고, 새 카카오톡이 실행될 수 있게 됩니다.
주의사항
관리자 권한 필수입니다. 핸들 조작은 시스템 레벨 작업이라 권한이 없으면 안 됩니다.
카카오톡 업데이트되면 Semaphore 이름이 바뀔 수도 있습니다. 지금까지는 문제없었지만, 혹시 안 되면 댓글 남겨주시면 확인해보겠습니다.
안전한가요?
이 도구를 공개하고 나서 가장 많이 받는 질문입니다. 결론부터 말하면, 카카오톡을 변조하거나 해킹하는 도구가 아닙니다.
이 도구가 하는 것
- Windows의 Semaphore 핸들을 닫는 것 (OS 레벨 조작)
- Microsoft 공식 도구(Sysinternals Handle) 사용
이 도구가 하지 않는 것
- 카카오톡 실행 파일(.exe) 수정
- 카카오톡 서버 통신 변조
- 로그인/인증 우회
- 메모리 해킹
각 인스턴스는 100% 정상적인 카카오톡입니다. 그냥 "하나만 실행돼야 한다"는 제한을 풀어주는 것뿐입니다.
깃허브 링크
GitHub - Blue-B/KakaoTalk-Multi-Instance: PC에서 카카오톡 여러 개 동시 실행 | Run multiple KakaoTalk instances
PC에서 카카오톡 여러 개 동시 실행 | Run multiple KakaoTalk instances - Blue-B/KakaoTalk-Multi-Instance
github.com