디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

C언어 관련해서 염치없지만 다시 한번 질문 올려봅니다.

레알초짜(121.88) 2010.07.03 19:00:42
조회 181 추천 0 댓글 1


  xp3 확장자의 파일을 분해하는 콘솔 응용 프로그램의 소스를 구하게 되었습니다.
  일전에 작성하였을 때 답변 하여주셨던 분께서 해당 확장자가 기리기리엔진 어카이브인 것을 알고 계셔서 그나마 다행이었네요.
  실은, 이 엔진을 몇번 뜯다보니 이해도 조금씩 되고 흥미가 생겨서 아예 어카이브를 재압축하려는 일종의 리팩툴을 만들려 하는데
  생각처럼 잘 되지 않아서요. 프갤분들께 초면에 염치없지만 질문을 드리고자 합니다.

 #include "xp3filter_decode.h"

  typedef unsigned char u8;
  typedef unsigned int u32;
  typedef unsigned short u16;

  extern unsigned int CheckSum(BYTE *buf, unsigned int len);

  // xror
  static void xp3filter_decode_xor_ror(BYTE *buf, DWORD len, DWORD offset, DWORD hash)
  {
 BYTE shift, xor;

 shift = (BYTE)hash;
 xor = (BYTE)((hash >> 8) & 0xff);
 if (!shift)
  shift = 15;
    if (!xor)
  xor = 0xf0;

 shift &= 7;
 for (DWORD i = offset; i < offset + len; i++) {
  buf[i] ^= xor;
  buf[i] = (buf[i] >> shift) | (buf[i] << (8 - shift));
  }
 }


  void xp3filter_decode_dec(struct xp3filter *xp3filter)
 {
  //const char *dec_string = xp3filter->parameter;

  xp3filter_decode_xor_ror(xp3filter->buffer, xp3filter->length, xp3filter->offset, xp3filter->hash);
  }
  
해당 콘솔 프로그램을 풀 때 dec=xror 이라는 옵션을 넣어서 xp3 파일을 풀었습니다.
그래서 비주얼 2008로 파일들을 모아 프로젝트를 만들고 그 중에서 dec.cpp 라는 파일 내의 소스를 변경해야 한다는
부분도 알게 되었습니다. 위 코드는 dec.cpp 의 xror 옵션으로 분해 할때의 소스 인 것 같습니다만..
다른건 다 제쳐두고라도   buf[i] ^= xor; 의 부분이 XOR로 되어 있어서 반대로 바꾸려 하는데 XNOR로 해야 할지
AND로 해야할지 모르겠습니다. 다 시도를 해봤지만 ANSI ~ Unicode 나 실행시 충돌이 발생해서 애를 먹고 있어서요.

static void xp3filter_decode_inc_xor_not(BYTE *buf, DWORD len, DWORD offset, DWORD hash)
{
 BYTE xor = (BYTE)hash;

 for (DWORD i = offset; i < offset + len; i++)
  // buf[i] = ~(buf[i] ^ (xor + 1));
  buf[i] = (~buf[i] ^ (xor + 1));
}

이건 dec=ixorn 옵션으로 풀 때의 dec.cpp 코드인데 위처럼 ~위치만 바꿔서 XOR를 XNOR로 변경해 반대로
적용시켜 분해할 파일을 압축하는 구조로 바꿨다고 하더군요. 위 소스도 이러한 구조로 바꿔서 적용할 수 있으면
좋겠는데 어디부터 손을 대야 할지 모르겠습니다.

혹시 아시는 분이 계시다면 도움좀 부탁드리겠습니다. T.T
머리를 싸매고 이것저것 적용시켜봐도 답이 보이질 않아서요...

추신 : 혹시 사전 설명이나 자료가 필요하시면 추가로 올리겠습니다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 SNS로 싸우면 절대 안 질 것 같은 고집 있는 스타는? 운영자 24/05/06 - -
203145 내일 시험 [3] 이모군(58.228) 10.08.13 68 0
203144 3대장 머그컵갤로그로 이동합니다. 10.08.13 68 0
203143 난 갑이에요 ㅁㄴㄻㄹ갤로그로 이동합니다. 10.08.13 79 0
203141 양키의 개간지나는 128 bit WEP key 크래킹. ㅋㅋ(121.129) 10.08.13 92 0
203139 사용하지 않는 함수를 map 파일에 남기기 문제좀..ㅜ 캐발자갤로그로 이동합니다. 10.08.13 53 0
203138 형들 혹시 리버싱에 대해 잘 아시는분.. [3] 123(121.129) 10.08.13 122 0
203137 웹프도 개발자임? [1] 햏햏했갤로그로 이동합니다. 10.08.13 129 0
203136 낚시 가고싶다.. 스킨답서스갤로그로 이동합니다. 10.08.13 35 0
203134 에어컨을 하도 틀어서 전기세가 많이 나오지 싶다. [1] 이모군(58.228) 10.08.13 60 0
203133 해킹코드?? 이런거 말하는 거임? [17] 생각놀이갤로그로 이동합니다. 10.08.13 312 0
203132 이거 해킹코드라고 허세부리는애읶ㅆ는데 진짜맞아요? [6] ㄴㄹ(121.143) 10.08.13 374 0
203131 C#해보신 횽들 질문좀요!! [2] 123(121.129) 10.08.13 83 0
203129 코더와 프로그래머의 기준 [6] 긴기라기니(58.180) 10.08.13 204 0
203128 웹프로그래머가 양산이라니 [7] 긴기라기니(58.180) 10.08.13 245 0
203127 횽들 나 투잡뛰기로 했어. 당장에 월욜까지 아웃풋.. [1] 초밥술사갤로그로 이동합니다. 10.08.13 84 0
203126 금요일 퇴근 손- [2] 수짱사마갤로그로 이동합니다. 10.08.13 76 0
203125 돈 되는 모바일 어플 만드는 방법. 3단계. [2] ㅂㅈㄷㄱ(125.132) 10.08.13 1273 0
203123 모바일 어플로 돈버는법 [3] 긴기라기니(58.180) 10.08.13 306 0
203122 기숙사에서 코골면 잘때 밟힘? [1] ㅇㅇ(121.101) 10.08.13 83 0
203121 현재 한국어 능력을 영어 능력으로 바꾸기 VS 그냥 살기 힘내긔(110.46) 10.08.13 58 0
203120 모바일 어플이 돈이 되나.? [3] 뭐져(121.101) 10.08.13 131 0
203118 미래에는 마법사가 없는 세상이 올것이다. [1] 아주아슬갤로그로 이동합니다. 10.08.13 144 0
203116 님들 컴공 나오면 뭐함? [5] ?(121.101) 10.08.13 177 0
203115 무선전력전송기술 [2] .3(124.137) 10.08.13 161 0
203113 미래에는 배터리가 없는 세상이 올것이다. [15] 123(121.129) 10.08.13 225 0
203112 아 내주위에 워즈니악 같은 넘 없나.. [3] 긴기라기니(58.180) 10.08.13 87 0
203111 방통대 나오면 회사에서 인정해줌?? [8] 무식(222.112) 10.08.13 490 0
203110 여러분 집은 잠에서 주무세요 [2] 씨발라드세요(211.115) 10.08.13 69 0
203109 인생선배횽들... 나 상담좀 해주오!!! 고민되어서 미치겠어요... [3] 뉴비(207.180) 10.08.13 96 0
203108 html5 기반 소셜웹게임 만들라면 [2] 긴기라기니(58.180) 10.08.13 131 0
203107 일 동접 3만명정도면 서버 얼마짜리 써야되여? [6] 긴기라기니(58.180) 10.08.13 169 0
203106 밑에 서버호스팅한다는 사람 monoless갤로그로 이동합니다. 10.08.13 58 0
203105 메신저 피싱 하니까 지난번 나한태 작업건놈 있었어.. [2] rntjr갤로그로 이동합니다. 10.08.13 172 0
203104 차감의 반대말이 뭐더라... [28] 캐꼬꼬닭(112.216) 10.08.13 10417 0
203101 1학기 남았는데..졸업전 스펙 평가좀 해주세요 ㅠㅠ [6] 1(211.253) 10.08.13 293 0
203099 사이트 하나 팔면 1억불인데 취업 왜함? [3] 메머드(58.180) 10.08.13 202 0
203098 사직서 쓰는 아침 [1] 유리한갤로그로 이동합니다. 10.08.13 136 0
203096 디스크조각모음 효과 좋네 [5] (218.150) 10.08.13 2449 0
203095 힙갤 애들은 좀 나은거 같다. [3] 머그컵갤로그로 이동합니다. 10.08.13 104 0
203094 혹시 안드로이드 개발하는 횽 있음?? [10] 카카횽갤로그로 이동합니다. 10.08.13 281 0
203093 내 앞에 길은 없다. 내 뒤에 길은 생겨난다. [4] 머그컵갤로그로 이동합니다. 10.08.13 241 0
203092 내일이면 시험 끝이다 [4] 땡칠도사갤로그로 이동합니다. 10.08.13 110 0
203088 커널 프로그래밍??!! [5] 하앍하앍(123.199) 10.08.13 256 0
203087 해킹당했는데 살려줘 횽들아☆★☆★☆★☆★ [4] 끄지라고색꺄갤로그로 이동합니다. 10.08.13 182 0
203086 리스트 컨트롤 질문 [1] 달걀소년갤로그로 이동합니다. 10.08.13 82 0
203082 [천재플머 매거진] 업데이트 소식!!! [7] 천재플머(121.139) 10.08.13 168 0
203081 신방+컴공 지망하는 ㅇㅇ 은 Eagle을 봅시다. [1] 구루구루(203.233) 10.08.13 219 0
203079 합격자 발표할때마다 Q-NET DDOS공격하면 잼나겠다 [2] .3(124.137) 10.08.13 116 0
203078 진정한 개발자는 라이브러리나 남의 소스를 쓰지않고 직접짜야한다. [13] 씬입사원갤로그로 이동합니다. 10.08.13 337 0
203077 아니 이건 뭐임 ㅋ [3] 어떡해갤로그로 이동합니다. 10.08.13 106 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2