안녕하세요.
요즘 몇 몇 분들이 삼성 FUS와 KIES, 펌웨어 복호화에 관심이 많으신 것 같습니다.
저도 관심이 많습니다만, 관련 지식이 없다보니 이게 결코 쉽지가 않네요.
그래서 이번 기회에 정보를 함께 공유해보고, 어떻게 해야 KIES를 통해 비공식 펌웨어 업그레이드를 할 수 있는가에 대해 얘기를 나누어 볼까 합니다.
1. KIES의 펌웨어 업그레이드 원리
# 펌업을 할 시에 처리되는 작업들
1) www.noontang.com이라는 호스트에 접속하여 뭔가를 요청하는 것 같습니다.
## Request Headers:
GET /piterpen_unicode/sdkv2/license.asp?id=%53%41%4d%53%55%4e%47%53%44%4b%5f%43%53%48%41%52%50%47%45%4e&psw=%59%45%50%50%5f%47%45%4e%5f%43%53%48%41%52%50%5f%53%44%4b HTTP/1.1
해석해보면
GET
/piterpen_unicode/sdkv2/license.asp?
id=SAMSUNGSDK_CSHARPGEN
&
psw=YEPP_GEN_CSHARP_SDK
HTTP/1.1
뭔지 모르겠습니다. (그게 제가 이 글을 쓰는 이유니까요!)
2) fus.samsungmobile.com 이라는 호스트에 접속해서 펌웨어 정보를 얻어옵니다.
## Request Headers:
POST http://fus.samsungmobile.com/MS_TEST/msfus.php HTTP/1.1
Content-Type: appliction/x-www-form-urlencoded
User-Agent: SAMSUNG_KIES
Host: fus.samsungmobile.com
Content-Length: 1110
Expect: 100-continue
Proxy-Connection: Keep-Alive
KIES가 fus.samsungmobile.com 으로 펌웨어 정보를 담아서 요청을 합니다.
그럼 fus.samsungmobile.com에서 반응을 하죠. 현재 날아온 펌웨어 정보와 서버에 등록된 최신 펌웨어를 비교해서, 조건에 맞으면 최신 펌웨어의 각종 정보가 담긴 내용을 KIES로 다시 전송해줍니다.
아래는 DH19 펌웨어를 가진 기기를 DI03으로 업그레이드할 때의 예제입니다.
## 요청하는 정보

## 요청이 합당할 경우 DI03을 반환함 (현재 이클레어 최신)

몇 가지 매우 흥미로운 것이 있습니다.
http://fus.samsungmobile.com/Phone_Binary/10/SHW-M110S_SHW-M110SDI03_SHW-M110SDI03_SHW-M110SDH09_SHW-M110SDH09_KR_SKT.zip.enc
네. 펌웨어를 받을 수 있는 주소입니다. 확장자의 enc에서 볼 수 있듯이 암호화 되어있는 압축파일입니다.3542609 를 살펴보면, 복호화 코드가 3542609임을 알 수 있습니다. 저번에 유출되었던 DI29는 위의 주소를 약간 응용하여 암호화된 압축 파일을 받은 다음에, 특수한 개인제작 프로그램을 이용하여 복호화 코드만 알아낸 뒤 본문에 첨부된 Decoder로 압축을 해제하여 배포된 것 입니다.
2. 우리가 할 수 있는 것들?
1) 웹 디버깅 프로그램(e.g. fiddler2)으로 KIES가 동작하는 동안 주고 받는 데이터를 가로채서 우리가 원하는 정보로 바꾼 다음에 펌웨어 업그레이드를 진행할 수 있지 않을까 싶습니다.
2) 위에서 언급한 개인제작 프로그램을 우리도 만들 수 있지 않을까요. (-_-)
3) 개인이 운영하는 서버에 펌웨어를 올려놓고 다운로드 받는 사람들의 컴퓨터의 호스트를 해당 서버로 수정한 다음, KIES가 fus.samsungmobile.com 에 접속해서 처리하는 일련의 과정들을 흉내낼 수 있지 않을까요..........
여러 능력자분들이 모두 함께 힘을 합쳐 무언가를 만들어낼 수 있었으면 좋겠습니다! :D
댓글로 함께해 주세요!
요즘 몇 몇 분들이 삼성 FUS와 KIES, 펌웨어 복호화에 관심이 많으신 것 같습니다.
저도 관심이 많습니다만, 관련 지식이 없다보니 이게 결코 쉽지가 않네요.
그래서 이번 기회에 정보를 함께 공유해보고, 어떻게 해야 KIES를 통해 비공식 펌웨어 업그레이드를 할 수 있는가에 대해 얘기를 나누어 볼까 합니다.
1. KIES의 펌웨어 업그레이드 원리
# 펌업을 할 시에 처리되는 작업들
1) www.noontang.com이라는 호스트에 접속하여 뭔가를 요청하는 것 같습니다.
## Request Headers:
GET /piterpen_unicode/sdkv2/license.asp?id=%53%41%4d%53%55%4e%47%53%44%4b%5f%43%53%48%41%52%50%47%45%4e&psw=%59%45%50%50%5f%47%45%4e%5f%43%53%48%41%52%50%5f%53%44%4b HTTP/1.1
해석해보면
GET
/piterpen_unicode/sdkv2/license.asp?
id=SAMSUNGSDK_CSHARPGEN
&
psw=YEPP_GEN_CSHARP_SDK
HTTP/1.1
뭔지 모르겠습니다. (그게 제가 이 글을 쓰는 이유니까요!)
2) fus.samsungmobile.com 이라는 호스트에 접속해서 펌웨어 정보를 얻어옵니다.
## Request Headers:
POST http://fus.samsungmobile.com/MS_TEST/msfus.php HTTP/1.1
Content-Type: appliction/x-www-form-urlencoded
User-Agent: SAMSUNG_KIES
Host: fus.samsungmobile.com
Content-Length: 1110
Expect: 100-continue
Proxy-Connection: Keep-Alive
KIES가 fus.samsungmobile.com 으로 펌웨어 정보를 담아서 요청을 합니다.
그럼 fus.samsungmobile.com에서 반응을 하죠. 현재 날아온 펌웨어 정보와 서버에 등록된 최신 펌웨어를 비교해서, 조건에 맞으면 최신 펌웨어의 각종 정보가 담긴 내용을 KIES로 다시 전송해줍니다.
아래는 DH19 펌웨어를 가진 기기를 DI03으로 업그레이드할 때의 예제입니다.
## 요청하는 정보

## 요청이 합당할 경우 DI03을 반환함 (현재 이클레어 최신)

몇 가지 매우 흥미로운 것이 있습니다.
http://fus.samsungmobile.com/Phone_Binary/10/SHW-M110S_SHW-M110SDI03_SHW-M110SDI03_SHW-M110SDH09_SHW-M110SDH09_KR_SKT.zip.enc
네. 펌웨어를 받을 수 있는 주소입니다. 확장자의 enc에서 볼 수 있듯이 암호화 되어있는 압축파일입니다.
2. 우리가 할 수 있는 것들?
1) 웹 디버깅 프로그램(e.g. fiddler2)으로 KIES가 동작하는 동안 주고 받는 데이터를 가로채서 우리가 원하는 정보로 바꾼 다음에 펌웨어 업그레이드를 진행할 수 있지 않을까 싶습니다.
2) 위에서 언급한 개인제작 프로그램을 우리도 만들 수 있지 않을까요. (-_-)
3) 개인이 운영하는 서버에 펌웨어를 올려놓고 다운로드 받는 사람들의 컴퓨터의 호스트를 해당 서버로 수정한 다음, KIES가 fus.samsungmobile.com 에 접속해서 처리하는 일련의 과정들을 흉내낼 수 있지 않을까요..........
여러 능력자분들이 모두 함께 힘을 합쳐 무언가를 만들어낼 수 있었으면 좋겠습니다! :D
댓글로 함께해 주세요!


