SlideShare ist ein Scribd-Unternehmen logo
1 von 84
Downloaden Sie, um offline zu lesen
카카오톡으로 여친 만들기
김태훈
나이 : 22
carpedm20
카카오톡으로 여친 만들기
카카오톡으로 여친 만들기
카카오톡?
카카오톡?
모바일 인스턴트 메신저
Mobile instant messenger
모바일 인스턴트 메신저
카카오톡?
HTTP
2011.11 이전
모바일 인스턴트 메신저
카카오톡?
모바일 인스턴트 메신저
카카오톡?
겁나 빠른 황소 프로젝트
2011.11 이후
모바일 인스턴트 메신저
카카오톡?
겁나 빠른 황소 프로젝트 = LOCO 프로토콜
2011.11 이후
LOCO 프로토콜
카카오톡으로 여친 만들기
여친?
카카오톡으로 여친 만들기
여친?
신화 속에서나 등장하는 상상의 동물
ASKY
여친?
신화 속에서나 등장하는 상상의 동물
목표 : 여친을 만들자 (X)
가상의 여친을 만들자 (O)
Imaginary girlfriend
여친?
신화 속에서나 등장하는 상상의 동물
‘가상의 여친’, 조건 2가지
여친?
신화 속에서나 등장하는 상상의 동물
‘가상의 여친’, 조건 2가지
1. 나의 말을 들을 수 있다.
여친?
신화 속에서나 등장하는 상상의 동물
‘가상의 여친’, 조건 2가지
1. 나의 말을 들을 수 있다.
2. 나의 말에 대한 대답을 할 수 있다.
여친?
신화 속에서나 등장하는 상상의 동물
‘가상의 여친’, 조건 2가지
1. 나의 메시지를 읽을 수 있다.
2. 나의 메시지에 대한 답장을 할 수 있다.
카카오톡에 살고 있는
해킹을 시작해 봅시다
Let’s start hacking
해킹을 시작해 봅시다
우리에게 필요한 것?
# include <stdio.h>
int kakaoTalk()
{
sendMessage(“카카오톡으로 여친 만들기”);
return 0;
}
해킹을 시작해 봅시다
우리에게 필요한 것?
해킹을 시작해 봅시다
우리에게 필요한 것?
카카오톡 ≠ 오픈 소스
Life is short, you need HeXA
해킹을 시작해 봅시다
우리에게 필요한 것?
디컴파일
Decompile
해킹을 시작해 봅시다
우리에게 필요한 것?
카카오톡 초기 버전 어플리케이션
KakaoTalk application in 2006
해킹을 시작해 봅시다
우리에게 필요한 것?
우리를 환영하는 “소스 코드 난독화”
Source code obfuscation
해킹을 시작해 봅시다
우리에게 필요한 것?
읽어볼 테면 읽어봐
<- 카카오톡 소스 코드의 공격
Java
.apk
Objective C
.ipa
C#
.xap
Java
.jar
해킹을 시작해 봅시다
우리에게 필요한 것?
Java
상대적으로 구하기 쉬움
C#
상대적으로 분석하기 쉬움
해킹을 시작해 봅시다
우리에게 필요한 것?
어떻게 구하지?
해킹을 시작해 봅시다
해킹을 시작해 봅시다
어떻게 구하지?
해킹을 시작해 봅시다
어떻게 구하지?
해킹을 시작해 봅시다
어떻게 구하지?
해킹을 시작해 봅시다
어떻게 구하지?
그렇게 아무 일도 일어나지 않았다...
검색에 왕도는 없었다...
해킹을 시작해 봅시다
어떻게 구하지?
by carpdm20
해킹을 시작해 봅시다
어떻게 구하지?
결국... 성공!
Reversing
소스코드를 읽어 봅시다
해킹을 시작해 봅시다
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
얘네는 뭐지? C#, Java 인건 알겠는데...
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
그냥 zip 파일
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
음...
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
찾음ㅋ
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
.Net Reflector
0
<- 우왕! 코드가 보여요
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
TCP 통신
보내는이 IP
받는이 IP
메시지 : 안녕
Socket
소켓을 통해서 서로 데이터를 교환하는 통로
(가상의) 여친한테 “안녕"이라고 보내줘
ㅇㅋ 보냈음
나
(가상의)
여친
…
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
 LOCO 서버와 TCP 소켓이 연결되어 있는지 확인
- 그렇지 않다면 재 접속 시도
 현재 커맨드에 해당하는 패킷 생성 ( FillBuffer() )
- 커맨드 : 패킷이 메세징 과정에서 하는 역할
 if(isSecureMode)
- True & Login : handshake 패킷 생성 후 암호화된 커맨드 패킷 앞에
붙이고 전송
- True & !Login : 커맨드 패킷을 암호화 하고 전송
- False: 그대로 전송
Network flow
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
 ADDMEM
 NOTIREAD
 LEAVE
 READ
 BUY
 CWRITE
 LOGIN
 PING
 WRITE
 BLOCK
 NCHATLIST
 CHATON
 CHATOFF
 UPDATECHAT
 UNBLOCK
 UPSEEN
 CHATLIST
 WRITE
커맨드 종류
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
FillBuffer 함수를 통해 현재 커맨드에
해당하는 패킷 생성
True & Login : handshake 패킷 생성 후 암호
화된 커맨드 패킷 앞에 붙이고 전송
LOCO 서버에 대한 TCP 소켓이 연결되어 있는지 확인
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
 가장 기본이 되는 패킷
 Packet ID : 패킷 번호
 Status Code : 보통 0
 Method = 커맨드
Ex) LOGIN, ADDMEM , ACHATLIST
 Body Type : 0
 Body Length
 Body Contents
- bson 형태로 전송됨
출처 : http://www.bpak.org/
{ msg : “안녕”,
time : 20131012,
to : “(가상의) 여친” }
LocoPacket
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
출처 : http://www.bpak.org/
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
커맨드 종류
해킹을 시작해 봅시다
소스코드를 읽어 봅시다
BUY
Encrypted
LOGIN
Handshake
WRITE
loco.kakao.com
Host
port
Host:port
AES key
(랜덤 생성됨)
Encrypted
AES key
public key로
RSA encryptLOGIN
AES
12
6
7
3
45
서버 측에서는 Private key로 RSA decrypt
Network
패킷패킷패킷 실제로 어떻게 생겼을까?
해킹을 시작해 봅시다
해킹을 시작해 봅시다
패킷패킷패킷 실제로 어떻게 생겼을까?
Wireshark
해킹을 시작해 봅시다
패킷패킷패킷 실제로 어떻게 생겼을까?
Wireshark
HTTP Request
HTTP Response
해킹을 시작해 봅시다
패킷패킷패킷 실제로 어떻게 생겼을까?
 LOCO 서버 정보 및 소켓 요청
 non-secure 모드
- 암호화 되지 않고 LocoPacket 형태로 그대로 전송됨
BUY 커맨드
해킹을 시작해 봅시다
패킷패킷패킷 실제로 어떻게 생겼을까?
Handshake
with RSA
encrypted
AES key
AES
Encrypted
Login
AES
Encrypted
Response
Handshake + LOGIN 커맨드
이제 남은건?
카카오톡으로 여친 만들기
po코딩wer
카카오톡으로 여친 만들기
이제 남은건?
이제 남은건?
po코딩wer
이제 남은건?
po코딩wer
이제 남은건?
po코딩wer
끗
And?
LINE으로 여친 만들기
뭐부터 하지?
LINE 초기 버전 어플리케이션
LINE application in 2008(?)
뭐부터 하지?
뭐부터 하지?
LINE 초기버전 어플리케이션
성공!
뭐부터 하지?
LINE 초기버전 어플리케이션
찾음ㅋ
뭐부터 하지?
LINE 초기버전 어플리케이션
Code & packet reversing
소스코드를 읽고 패킷을 분석해봅시다
뭐부터 하지?
LINE auth에 이용된다고 추측되는 URL : gm.line.naver.jp/S3
뭐부터 하지?
소스코드를 읽고 패킷을 분석
.Net Reflector
뭐부터 하지?
소스코드를 읽고 패킷을 분석
Wireshark
#!/usr/bin/python
# -*- coding: utf-8 -*-
__author__ = 'carpedm20'
import urllib2
def send():
url = 'http://gm.line.naver.jp/S3'
headers = { 'POST' : '/S3',
'X-Line-Application' : 'WINPHONE.1.7.0.71.WindowsPhone.7.10.7720',
'Referer' : 'file:///Applications/Install/???/Install/',
'Accept-Encoding' : 'identity',
'Content-Type' : 'application/x-thrift',
'Accept' : 'application/x-thrift',
'X-Line-Access' : '???',
'Connection' : 'Keep-Alive',
'User-Agent' : 'WindowsPhone 1.7.0.71',
'HOST' : 'gm.line.naver.jp',
'Cache-Control' : 'no-cache'}
data='x80x01x00x01 ...생략... x0ex00x00x00'
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
print "[*] Result "
data = response.read()
print data
#data = json.loads(data ,encoding='utf-8')
send()
뭐부터 하지?
소스코드를 읽고 패킷을 분석
성공!
뭐부터 하지?
소스코드를 읽고 패킷을 분석
사실 평문으로 보이므로 어렵지 아니합니다
패킷을 좀더 자세히 분석해봅시다
뭐부터 하지?
소스코드를 읽고 패킷을 분석
1. 커맨드로 보이는 sendMessage가 적나라하게 보임
2. 평문( 1234567… )이 ( 카카오톡과는 다르게 ) 확연히 눈에 보임
세션키로 보이며 Base64 로 인코딩 되어 있음 (iat 와 바이트 코드로 구성)
카카오 톡처럼 bson 형태라 생각했으나 아니었음
뭐부터 하지?
소스코드를 읽고 패킷을 분석
보내지는 파라미터 확인
뭐부터 하지?
소스코드를 읽고 패킷을 분석
아까 봤던 커맨드 확인
뭐부터 하지?
소스코드를 읽고 패킷을 분석
보내지는 파라미터 확인
data = 'x80x01x00x01'
data += 'x00x00x00x0b' # length of function
data += 'sendMessage‘
## Message information for static message ##
data += 'x00x00x00x00'
data += 'x08x00x01x00'
data += 'x00x00x00x0c'
data += 'x00x02x0bx00'
# x01x00x00x00 : from
# x02x00x00x00 : to
data += 'x02x00x00x00' # to
data += '????' # chat id to send message
data += 'x0bx00x0a' # ChatId footer
message = raw_input(">> ")
## Length of message ##
data += struct.pack('>I',len(message))
data += message
## Message footer ##
data += 'x02x00x0ex00x00x00'
뭐부터 하지?
소스코드를 읽고 패킷을 분석
+ =
#!/usr/bin/python#
-*- coding: utf-8 -*-
__author__ = 'carpedm20’
import urllib2
import struct
url = 'http://gm.line.naver.jp/S3‘
headers = { 'POST' : '/S3',
'X-Line-Application' : 'WINPHONE.1.7.0.71.WindowsPhone.7.10.7720',
'Referer' : 'file:///Applications/Install/A18DAAA9-9A1C-4064-91DD-794644CD88E7/Install/',
'Accept-Encoding' : 'identity',
'Content-Type' : 'application/x-thrift',
'Accept' : 'application/x-thrift',
'X-Line-Access' : '????';
'Connection' : 'Keep-Alive',
'User-Agent' : 'WindowsPhone 1.7.0.71',
'HOST' : 'gm.line.naver.jp',
'Cache-Control' : 'no-cache'}
def send():
data = 'x80x01x00x01x00x00x00x0b‘
data += 'sendMessage‘
data += 'x00x00x00x00x08x00x01x00x00x00x00x0cx00x02x0bx00x02x00x00x00‘
data += '????' # chat id to send message
data += 'x0bx00x0a‘
message = raw_input(">> ")
data += struct.pack('>I',len(message))
data += message
data += 'x02x00x0ex00x00x00‘
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
print "[*] Result “
data = response.read()
for d in data:
print "%#x" % ord(d)
def read():
data = 'x80x01x00x01' # TBinaryProtocol.VERSION_1 | type
data += 'x00x00x00x0f‘
data += 'fetchOperations‘
data += 'x00x00x00x00x0a‘
data += 'x00x02x00x00x00x00x00x00x00xf9x08x00x03x00x00x00x14x00‘
request = urllib2.Request(url, data, headers)
response = urllib2.urlopen(request)
print "[*] Result “
data = response.read()
for d in data:
print "%#x" % ord(d),
print
print data
while 1:
send()
뭐부터 하지?
소스코드를 읽고 패킷을 분석
카카오 톡과는 다르게 스티커를 마음대로 쓸 수 없었다... 주륵
Demo
역시 세미나의 지루함은 데모로 날려버려야 제맛!
이제 남은건?
po코딩wer
끝
End!

Weitere ähnliche Inhalte

Was ist angesagt?

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)Heungsub Lee
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영NAVER D2
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들DongMin Choi
 
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"용근 권
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민종민 김
 
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정Seongyun Byeon
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게Seongyun Byeon
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기NAVER D2
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례Hyung Lee
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
모바일 게임 보안
모바일 게임 보안모바일 게임 보안
모바일 게임 보안TOAST_NHNent
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 choi kyumin
 
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?Juhong Park
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Wangeun Lee
 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityMatt Tesauro
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System Kwangseob Kim
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 

Was ist angesagt? (20)

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영[236] 카카오의데이터파이프라인 윤도영
[236] 카카오의데이터파이프라인 윤도영
 
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
[C++ Korea] C++ 메모리 모델과 atomic 타입 연산들
 
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
KSUG 스프링캠프 2019 발표자료 - "무엇을 테스트할 것인가, 어떻게 테스트할 것인가"
 
검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민검색엔진이 데이터를 다루는 법 김종민
검색엔진이 데이터를 다루는 법 김종민
 
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
TF에서 팀 빌딩까지 9개월의 기록 : 성장하는 조직을 만드는 여정
 
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게성장을 좋아하는 사람이, 성장하고 싶은 사람에게
성장을 좋아하는 사람이, 성장하고 싶은 사람에게
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
모바일 게임 보안
모바일 게임 보안모바일 게임 보안
모바일 게임 보안
 
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기 [데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
[데이터야놀자2107] 강남 출근길에 판교/정자역에 내릴 사람 예측하기
 
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
[KAIST 채용설명회] 데이터 엔지니어는 무슨 일을 하나요?
 
Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계Spring integration을 통해_살펴본_메시징_세계
Spring integration을 통해_살펴본_메시징_세계
 
Peeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API SecurityPeeling the Onion: Making Sense of the Layers of API Security
Peeling the Onion: Making Sense of the Layers of API Security
 
[수정본] 우아한 객체지향
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향
 
[PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System [PYCON Korea 2018] Python Application Server for Recommender System
[PYCON Korea 2018] Python Application Server for Recommender System
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 

Mehr von Taehoon Kim

LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...Taehoon Kim
 
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링Taehoon Kim
 
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018Taehoon Kim
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Taehoon Kim
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017Taehoon Kim
 
Differentiable Neural Computer
Differentiable Neural ComputerDifferentiable Neural Computer
Differentiable Neural ComputerTaehoon Kim
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016Taehoon Kim
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introductionTaehoon Kim
 
Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Taehoon Kim
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningTaehoon Kim
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016Taehoon Kim
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 DjangoTaehoon Kim
 
영화 서비스에 대한 생각
영화 서비스에 대한 생각영화 서비스에 대한 생각
영화 서비스에 대한 생각Taehoon Kim
 

Mehr von Taehoon Kim (15)

LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
LLM에서 배우는 이미지 생성 모델 ZERO부터 학습하기 Training Large-Scale Diffusion Model from Scr...
 
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
상상을 현실로 만드는, 이미지 생성 모델을 위한 엔지니어링
 
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
머신러닝 해외 취업 준비: 닳고 닳은 이력서와 고통스러웠던 면접을 돌아보며 SNU 2018
 
Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]Random Thoughts on Paper Implementations [KAIST 2018]
Random Thoughts on Paper Implementations [KAIST 2018]
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
Differentiable Neural Computer
Differentiable Neural ComputerDifferentiable Neural Computer
Differentiable Neural Computer
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
지적 대화를 위한 깊고 넓은 딥러닝 PyCon APAC 2016
 
강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction강화 학습 기초 Reinforcement Learning an introduction
강화 학습 기초 Reinforcement Learning an introduction
 
Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)Continuous control with deep reinforcement learning (DDPG)
Continuous control with deep reinforcement learning (DDPG)
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learning
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
Deep Reasoning
Deep ReasoningDeep Reasoning
Deep Reasoning
 
쉽게 쓰여진 Django
쉽게 쓰여진 Django쉽게 쓰여진 Django
쉽게 쓰여진 Django
 
영화 서비스에 대한 생각
영화 서비스에 대한 생각영화 서비스에 대한 생각
영화 서비스에 대한 생각
 

Kürzlich hochgeladen

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 

Kürzlich hochgeladen (6)

Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 

카카오톡으로 여친 만들기 2013.06.29