리버스 엔지니어링이라.. 당연히 쉬운 일이 아니겠죠.
노하우 라기 보단 자신이 원하는 패킷만 받게끔 조작해주는게 좋겠죠.
일단 규칙적인 패킷이 날라오는 상황을 만들고 그 상황 하에서 자신이 원하는 패킷이 날라오게끔 유도하는 것 이외에 방법이 없습니다 ㅡ_ㅡ;;; 그리고 만에 하나 패킷이 암호화가 되어있다고 한다면 패킷 데이터를 읽는것은 일찌감치 포기하는편이 정신건강에 좋을듯 싶네요 ^^;
음 머 다른 의견들도 많겠지만 저 노하우 이외의 것은 좋은 결과를 얻은것이 없는듯 싶네요 물론 저의 능력안에서겠죠 :)
A가 connect request를 하면,
dg는 b에게 connect request를 하고,
b가 connect accept를 하면,
dg는 A에게 connect accept를 해줍니다.
이러한 방식으로 dummy gateway를 만드는 것의 장점은
들어오는 데이터를 자신의 취향에 따라 처리할 수 있다는 점과,
부분부분 주고 받는 패킷의 내용을 변경을 가하여,
예상되는 결과를 유추할 수 있다는 점이 있지요.
어느정도 데이터가 싸이고,
분석결과에 확신이 생기면,
A의 데이터 내용을 중심으로
단독적인 B와의 통신으로 옮겨 가기도 쉬어집니다.
C보다는 보다 신속히 개발할 수 있고, 수정이
용이한 개발툴을 활용하는 것이 좋을 듯 합니다.
리버스 엔지니어링이라.. 당연히 쉬운 일이 아니겠죠.노하우 라기 보단
리버스 엔지니어링이라.. 당연히 쉬운 일이 아니겠죠.
노하우 라기 보단 자신이 원하는 패킷만 받게끔 조작해주는게 좋겠죠.
일단 규칙적인 패킷이 날라오는 상황을 만들고 그 상황 하에서 자신이 원하는 패킷이 날라오게끔 유도하는 것 이외에 방법이 없습니다 ㅡ_ㅡ;;; 그리고 만에 하나 패킷이 암호화가 되어있다고 한다면 패킷 데이터를 읽는것은 일찌감치 포기하는편이 정신건강에 좋을듯 싶네요 ^^;
음 머 다른 의견들도 많겠지만 저 노하우 이외의 것은 좋은 결과를 얻은것이 없는듯 싶네요 물론 저의 능력안에서겠죠 :)
무제? 무죄!
저도 회사 일 때문에 그거 해야 되는데tcpdump로 패킷 캡쳐한
저도 회사 일 때문에 그거 해야 되는데
tcpdump로 패킷 캡쳐한 뒤
MAC layer 분해 툴 만들어서 분해하고
IP layer, TCP/UDP layer, ... 그위의 상위 레이어로 분해할 계획입니다.
TCP/UDP 위는 프로그램 고유의 프로토콜이 되는건 아시겠죠.
아무래도 자신이 원하는 정보를 뽑아내기 위한 툴을 잘 만들어야겠죠.
패킷 데이터를 직접 hex 덤프떠서 눈으로 분해할 생각을 하셨다면 일찌감치 포기하십쇼
TCP 패킷 하나 hex dump 떠서 하나 하나 눈으로 봐 가며 분해하는 것만도 시간 꽤 갑니다.
Written By the Black Knight of Destruction
[quote="흑기사"]tcpdump로 패킷 캡쳐한 뒤MAC la
그정도는 Iris 사용하면 되지 않을까요?
Filter 기능도 있고, 각 레이어별로 정보 트리로 보여주고.
Re: 네트워크 프로그램 리버스 엔지니어링시....
1. 일단은 IP 어드레스를 십진수로 변환해서 생각하는 일은 버리십시오.
16진수가 눈에 익숙해지도록 합니다.
2. 1번을 위해서 16진수 덧셈뺄셈, 구구단(FF단) 등을 평소에 연습합니다.
3. tcpdump 의 hexdump를 유심히 보아서 일단 IP packet의 위치별 정보는 몇가지 외워둡니다.
4. switching hub 보다는 dummy hub를 이용한 네트워크에서 tcpdump -n 해놓고 애들이 뭐라고 주고받으면서 넘어가는지 가만히 들여다 봅니다.
5. wellknown ports는 바로 보고 알수 있을 정도로 외워둡니다.
6. 사설 IP 대역은 바로 보고 알수있을 정도로 외워둡니다. (가능하면 HEX로도..)
7. Netmask에 따라 Broad cast와 ARP의 관계를 잘 이해해둡니다.
8. tcpdump나 snoop 등의 option들은 자유자재의 조합이 될 정도로 훈련합니다.
Broadcast 캡쳐안하기, 22,23번은 capture 안하기, hexdump하기 capture length 정하기, dest, src port에 따라 캡쳐하기 등은 기본입니다.
9. Socket State Transition Diagram에 따라 어떤 패킷이 왔다갔다하는지 확인해두기..
10. netstat, ifconfig, route 명령 자유자재로 사용하기...
생각나는대로 두서없이 적어봤습니다.
hex로 계산하는 것은... 사실 요즘 잠들때 마다, 16진수 덧셈, 곱셈, shift 놀이 하면서 잡니다... 10진수로 전혀 변환하지 않고 익숙해질때까지... -.- :shock:
[/]---
http://coolengineer.com
tcpdump도 괜찮지만,저같은 경우는 dummy gateway를 만
tcpdump도 괜찮지만,
저같은 경우는 dummy gateway를 만들어 사용합니다.
A -> B
일때...
A -> dg -> B
A가 connect request를 하면,
dg는 b에게 connect request를 하고,
b가 connect accept를 하면,
dg는 A에게 connect accept를 해줍니다.
이러한 방식으로 dummy gateway를 만드는 것의 장점은
들어오는 데이터를 자신의 취향에 따라 처리할 수 있다는 점과,
부분부분 주고 받는 패킷의 내용을 변경을 가하여,
예상되는 결과를 유추할 수 있다는 점이 있지요.
어느정도 데이터가 싸이고,
분석결과에 확신이 생기면,
A의 데이터 내용을 중심으로
단독적인 B와의 통신으로 옮겨 가기도 쉬어집니다.
C보다는 보다 신속히 개발할 수 있고, 수정이
용이한 개발툴을 활용하는 것이 좋을 듯 합니다.
There is no spoon. Neo from the Matrix 1999.
http://wowlinux.com/information/techupvi
http://wowlinux.com/information/techupview.html?id=62&view=1
이게 한 예가 될듯 하군요.
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기