본문 바로가기

My Study/Reversing

IDA v5.2 동 네트워크 대역에서 동시 사용

집에서 혼자 IDA를 쓰시는 분이라면 잘 모르시겠지만 동아리 같은 곳에서 같은 네트워크 대역을 쓰는 컴퓨터 2대로 IDA를 차례로 키면 나중에 킨 컴퓨터의 IDA는 안켜질 것입니다. 그림으로 잠깐 나타내 보았습니다.
 ( Packet Tracer로 구성해보았습니다.. )
0.0.0 의 동 네트워크 주소를 쓰고 있는 3대의 컴퓨터가 있습니다. 하지만 0.0.0.2 컴퓨터에서 IDA를 키고 있었다면 
0.0.0.4 컴퓨터에서는 IDA를 못 킬것입니다. 
아마 아래와 같은 창이 뜰것입니다.

IDA Pro에서 다른 IDA를 발견했다고 뜨는군요. 라이센스가 더 필요하다고 하네요.

이런 경우 이 메시지 창을 우회해서 IDA를 키는 방법이 두 가지가 있습니다.

1. 네트워크를 끊었다가 다시 살린다.
할 때마다 번거로움이 있고 인터넷을 껐다가 켜야하므로 네이트온 같은 메신저나 음악플레이어 등 잠시동안 전부 꺼질 것입니다.

위와 같이 그냥 사용 안함으로 해두고 IDA키시고 다시 인터넷 연결 해주시면 됩니다.

2. IDA 코드 패치
해킹 대회를 하던 중 다른 형들도 IDA를 쓰시는데 충돌이 나기 때문에 전 이 방법으로 간단하게 우회를 했습니다.
심각하게 분석할 필요는 없으므로 원리까지 설명은 안하고 간단히 설명하겠습니다.
우회를 해주어야 할 부분은 여러군대가 아닌 딱 한 부분이었습니다.
그리고 함수 찾기도 쉬웠던게 분명히 동 네트워크 대역 때 쓰는 곳이 있나 패킷을 보내고 받는 부분이 있을 것입니다.
소켓 함수 중에 찾으면 끝납니다.

recvfrom함수 입니다. 저 함수 다음에 나오는 점프문을 무조건 점프하게 만들어 주시면 간단하게 우회가 됩니다.
recvfrom함수는 패킷을 받는 부분이므로 해당 부분을 잘 봐보시면 답이 나옵니다.

시간 남아 조금 더 분석

여기 부분을 보시면 포트를 5D89포트 인것을 알 수 있습니다. ( 5D89 = 23945 )

와이어샤크로 패킷을 잡아보았습니다.

빨간색 네모 쳐진 곳을 보면 알 수 있습니다. 패킷 내용에 IDA라는 문자열도 보입니다. 이 패킷을 잡을 때는 다른 컴퓨터에 IDA가 없었습니다. 그래서 저에게 돌아오는 패킷은 따로 없군요.

이번에는 IDA가 다른 컴퓨터에 켜져 있는 상태에서 제가 IDA를 켜본 것의 패킷을 잡아보았습니다.

237이라는 호스트에서 저에게 패킷을 하나 날려주고 있습니다. 패킷 내용을 보니 IDA라는 문자열이 보입니다. 포트도 23945인것을 봐서 확실한 거 같습니다.

결론을 내보면
IDA를 키려는 호스트에서 브로드캐스트로 동 네트워크 대역 때에 있는 노드들로 패킷을 보냅니다. 그 패킷 속에는 IDA라는 문자열이 있습니다. 그 브로드캐스트를 받은 노드들은 자기 PC에 있는 프로세스 혹은 응용프로그램 목록 중에서 IDA가 존재하면 브로드캐스트를 뿌린 PC로 IDA가 있다는 패킷을 다시 주게 됩니다. 그러면 PC는 그 패킷을 보고 IDA 실행을 멈춰버리게 되는 것입니다. 

'My Study > Reversing' 카테고리의 다른 글

Anti Debuggering 우회 Plugin  (0) 2010.04.09
TLS Callback 안티 디버깅  (3) 2010.04.04
커널모드에서 유저모드 디버깅  (0) 2010.03.11
Vmware를 사용한 커널 디버깅  (2) 2010.03.11
Segment Register  (0) 2010.03.10