netfilter packet 소스 mangling 도와주세요 ㅠㅠ
글쓴이: declspec / 작성시간: 목, 2011/08/04 - 8:26오후
안녕하세요
openwrt 에서(커널2.6)
netfilter 라이브러리를 이용해서
커널모듈상에 후킹을 걸고
패킷의 내용을 수정하려고 하는데요
UDP 체크섬은 0 으로 비활성화시키고
UDP 페이로드의 내용도 수정하고
목적지 포트도 수정하고
마음대로 다 주물럭 할수가 있는데....
유독 Source Port 부분은
아무리 수정을 해도 반영이 안되네요 ㅡㅡ;;
후킹함수 상에서
struct udphdr* = (char*)ip_hdr(skb)+20;
이런식으로 UDP 헤더의 시작을
sk_buff 포인터로부터 얻었습니다
그다음에 한바이트씩 모조리 수정해봐도
source IP, source PORT 이 두부분은
수정이 안됩니다.
수정해도 그냥 무시됩니다 ㅡㅡ;;
수정을해서 목적지로 전송됬을때
다른부분은 다 수정된 패킷이 캡춰되는데
소스포트, 소스아이피 이 두부분만 안바뀐채로 간다는것이죠;;
원인이 뭘까요? ㅠㅠ
도와주세요~~!!
Forums:
자체해결
자체해결했습니다
원인은 후킹체인이 제가 건것 말고 openwrt 커널상에 또 걸려있는게 있었는데
우선순위가 제 후킹함수가 밀려서
제가 후킹해서 바꾼걸 커널이 기억하고있다가 도로 원상복귀 시킨것이더군요 ㅠㅠ
우선순위를 조절하니까 해결됬네요
아 이놈의것때문에 정말 몇시간동안... ㅠ.ㅠ
저의 경험이 누군가에게 도움되기를...
자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.
댓글 달기