지돌이의 블로그 입니다!

분석/iptime +1

2014.01.23. 00:13



 우선 좀 보니 N604와 N104을 비교했는데 둘의 구조는 서로 다르다. 

 

펌웨어 분석 완료.. 간단하다. 하지만 수정은..ㅠ

 

> binwalk n604m_kr_8_80.bin

DECIMAL    HEX        DESCRIPTION
-------------------------------------------------------------------------------------------
0          0x0        uImage header, header size: 64 bytes, header CRC: 0x97FE2D7C, created: Tue Oct  1 10:42:09 2013, image size: 1896384 bytes, Data Address: 0x80000000, Entry Point: 0x802CB000, data CRC: 0x3EEB6BF0, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "n604m"
64         0x40       LZMA compressed data, properties: 0x5D, dictionary size: 33554432 bytes, uncompressed size: 3038108 bytes
864256     0xD3000    Squashfs filesystem, little endian, non-standard signature,  version 3.0, size: 1030242 bytes,  435 inodes, blocksize: 65536 bytes, created: Tue Oct  1 10:42:05 2013

 

간단하게 uImage Header, Kernel Image, Squashfs 로 구성되어 있다.

 

firmware-mod-kit 을 이용해 쉽게 분리, rootfs을 볼 수 있는데 새로 build도 가능하다.

그레서 나만의 펌웨어를 만들기 위해 빌드 후 의도적으로 공유기의 flash memory 의 펌웨어를

망가뜨린 뒤(웹관리 펌웨어 업글창에서 펌웨어를 업글하는 도중에 전원을 차단하면 된다

하지만 펌웨어를 올바르게 수정한 뒤 업글하면 웹관리창에서도 새 펌웨어를 쓸 수 있을걸로 보인다)

tftp으로 전송!

하지만 우선 실패... UART로 확인해보니 Checksum Error가 뜬다.

 


 

쨋든 firmware mod kit가 uImage까지 수정해 주진 않는다.

 

빌드해서 만들어진 new-firmware.bin

 

0x00000000-0x0000003F 부분

0x00  27 05 19 56 97 FE 2D 7C 52 4A 28 71 00 1C EF C0

0x10  80 00 00 00 80 2C B0 00 3E EB 6B F0 05 05 02 03  

0x20  6E 36 30 34 6D 00 00 00 00 00 00 00 00 00 00 00 

0x30  00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 

 

저 세 부분을 바꿔줘야 한다.

우선 빨간색 부분 : 전체파일크기 - 0x40한 값.

파랑색 부분 : 0x40이후 데이터의 CRC32값

녹색부분 : 우선 녹색부분은 00 00 00 00 으로 바꿔준 뒤 저 0x40Bytes 의 CRC32값

 

펌웨어 업글시 Checksum 오류가 뜨지 않는다.

 

 

그런데.... 오류가 있다.

업글을 할땐 오류는 안뜨는데...

 
 
 TFTP server start
IP address: 192.168.0.1
Load address: 0x80100000
Reading: -#################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##################################################
done
Bytes transferred = 1919436 (1d49cc hex)
Check Firmware:80100000 =>[ Check Alias ... [n604m],[n604m] ] ->[ RUN : OK ]
Run Firmware Found!!
Update Run Firmware...(1919436 bytes)
***********
 addr = 0xBFC83868 ,cnt=1577316
 addr = 0xBFCD70D0 ,cnt=1235196
 addr = 0xBFD2A938 ,cnt=893076
 addr = 0xBFD7E1A0 ,cnt=550956
 addr = 0xBFDD1A08 ,cnt=208836
 dest[0xBFE00000]=00FF
 dest[0xBFE00000]=00FF
 dest[0xBFE00000]=00FF
 
이렇게..
 dest[0xBFE00000]=00FF
이것만 무한반복;;;;;
 
안그래도 펌웨어를 풀고 다시 빌드하면 파일크기가 커지는데 그것때문인지;;;
아.. 모르겠네;;

누구 아시는분 없나여~?


'분석 > iptime' 카테고리의 다른 글

N604M 펌웨어 분석/수정  (16) 2015.07.31

Comment +16

  • 유아트 2015.08.06 00:42

    안녕하세요 ㅠㅠ 같은 모델로 유아트 통신할려고 하는데 푸티로 하는데 안되서 질문드려요 ㅠㅠ 부팅화면 이런게 하나도 안뜨는데 무엇이 문제일까요 연결은 경우의 수를 다 해봤는데 ㅠㅠ 답변해주시면 감사하겠습니다 ㅎㅎ

    • RXD TXD GND만 USB to Uart같은것에 연결하시면 일단 부팅시 부팅메세지라도 나와야 합니다.
      RXD와 TXD을 크로스로 연결하시는거 잊지 마시구요~

    • 유아트 2015.08.06 01:01

      늦은시간에 감사합니다 ㅠㅠ
      그렇게 연결했는데 아무것도 안떠서요 드라이버 같은거 설치해야하나요 ?? 혹시 해야된다면 사이트라도 ㅠㅠ 정말 아무것도 안뜨네요 며칠째인지ㅠㅠ

    • 컴퓨터에서 COM포트가 Open된다면 드라이버는 이미 설치된 상황일겁니다.

    • 유아트 2015.08.06 01:04

      감사합니다 !!
      혹시 putty 뭐뭐 설정해야하는지 알수있을까요 ??

    • 별거는 없고
      baudrate는 115200bps 으로 하시구
      흐름제어같은거 다 끄시면 됩니다.

    • 유아트 2015.08.06 01:09

      감사합니다 !
      ㅠ 하지만 다 했는데 안되네요 ㅠ 늦은시간에 정말 감사했습니다 ㅠㅠㅠ

    • 유아트 2015.08.06 01:09

      감사합니다 !
      ㅠ 하지만 다 했는데 안되네요 ㅠ 늦은시간에 정말 감사했습니다 ㅠㅠㅠ

    • 유아트 2015.08.06 02:54

      정말 죄송하지만 혹시 usb to uart 어떤 모듈 썼는 지 알수있을까요 ?
      http://store.extremeelectronics.co.in/USB-to-UART-Bridge-CP2102-Based.html
      저는 이걸 쓰고 있는데 아예 되지가 않네요 ㅠㅠㅠ

    • 저두 CP2102 이것과 유사한 제품을 사용합니다.
      한번 이것만 RXD TXD쇼트시켜놓고 터미널에 아무 글자나 쳐서 보이는지 확인해보세요.
      보이지 않는다면 Usb-Uart가 고장났거나 흐름제어를 잘못 설정하신것일수도 있습니다.
      아님 RXD와 TXD도 바꿔 연결해보시구요.
      그리고 꼭 공유기도 껏다 켜야 글자가 보입니다.

    • 유아트 2015.08.06 17:07

      죄송하지만 usb 유아트 어떤모델인지 알수 있을까요??

    • 저는 중국사이트에서 이름없는거 그냥 산거라서.. 뭐라 제품명이 적혀있지 않네요.
      그런데 저두 저렇게 빨간색에 좀더 기다란 모델입니다.
      RXD TXD쇼트해서 테스트 먼저 해보시길 바랍니다.
      그게 된다면 그건 문제 없는 거니까요.

    • 유아트 2015.08.06 23:10

      안되더라고요 말씀하신대로는 바로 해봤습니다 ㅠ
      감사합니다 친절하게 답해주셔서 아무것도 안눌리더라고요 ㅠㅠ 공유기가 같은 모델은데 제꺼는 안되고 ㅜㅜ 슬프네요 감사합니다 많은 거 배우고갑니다!

  • 2015.09.18 06:41

    저도 수정해서 업그레이드하고잏는데 펌웨어손상 이됬다고... 유아트로 보니 버전 체크에서걸리는 것 같은데 해결하셨나요??? ㅠㅜ

  • 2015.09.18 16:58

    하.. 재빌드를 하고싶은데 ㅋㅋㅋㅋ 무결성 검사를 어디서 어떻게 하는지를 모르겠네요...