디시인사이드 갤러리

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

갤러리 본문 영역

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

레알초짜(121.88) 2010.07.03 19:00:42
조회 187 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 끝까지 다 본 걸 후회하게 만든 용두사미 드라마는? 운영자 25/07/07 - -
AD 휴대폰 바꿀까? 특가 구매 찬스! 운영자 25/07/02 - -
339345 COM이 뭐에요 [4] (175.192) 12.11.30 75 0
339344 무슨놈의 회의가.. [2] fm100(175.223) 12.11.30 62 0
339343 저 왜이렇게 못되고 ㅄ이져? [2] Kyle(220.244) 12.11.30 67 0
339342 sql(db) 숫자 0 표현 하는 방법 아시는분 [5] sql(211.220) 12.11.30 58 0
339340 자바 퀴즈 1 [2] Kyle(220.244) 12.11.30 74 0
339339 java 에서 db 쿼리 후 결과값 위치에 대한 질문!! [1] iljeomobolt갤로그로 이동합니다. 12.11.30 39 0
339338 [java] 형들, 메인 함수도 serializable 할 수 있어? [15] Prographer갤로그로 이동합니다. 12.11.30 115 0
339337 Eclipse 적응중인데 이거 Font 어디에 옵션있음? [4] 초딩6(59.13) 12.11.30 109 0
339336 jQuery 하려면 자바스크립 필수입니까? [2] Kyle(220.244) 12.11.30 85 0
339335 우리나라의 프로그래밍 현실은 잘 알았습니다. 그럼 외국은? r(175.192) 12.11.30 67 0
339334 프갤러님들 우분투 살리기에 동참해주십쇼 [14] 구루구루(119.64) 12.11.30 189 2
339332 자바스크립트에서 undefined 값 수정못하게 하는 방법 없나 [4] ㅁㄴㅇ(119.202) 12.11.30 58 0
339331 node.js는 15000개 이상의 사이트에서 사용되고 있다. [7] 피코피코갤로그로 이동합니다. 12.11.30 210 0
339330 내일 자바카페 세미나 가는사람 손 [2] 피코피코갤로그로 이동합니다. 12.11.30 80 0
339329 아마존 자주 이용하는 호구새키들 있냐? 내가 프라임 계정 만들어준다 초딩6(59.13) 12.11.30 46 0
339326 보안업계라는 게 안랩 같은데만 있는게 아니잖니? [3] 영꼰이갤로그로 이동합니다. 12.11.30 172 0
339325 형들 진짜급한질문! [1] 흑흑(210.125) 12.11.30 36 0
339324 아이패드를 학교에서 교과서 대용으로 쓴다고 했던거 같은데 [1] JSP(182.211) 12.11.30 64 0
339323 부왁 아이패드 미니 64기가 사려고 했더니 컴이랑 비슷하네 [1] JSP(182.211) 12.11.30 68 0
339322 SAVE 파일 아무리 수정해도 어려웠던 DOS 게임 있잖냐. [8] ☎2.51™갤로그로 이동합니다. 12.11.30 119 0
339320 삼국지3 돈 만땅으로 즐기던 시절 [1] 이모군(175.114) 12.11.30 74 0
339318 공돌이들은 자기 홍보를 할 줄 모른다. JSP(182.211) 12.11.30 62 0
339317 JYJ 쟤들 좀 웃기네 이모군(175.114) 12.11.30 41 0
339316 일어는 재밌습니다. 얼룩돼지갤로그로 이동합니다. 12.11.30 54 0
339313 게임못한지 몇주짼지 모르겟다 얼룩돼지갤로그로 이동합니다. 12.11.30 33 0
339312 다들 불꽃코딩하고있냐? 불금 칼퇴를 위해서? [2] 얼룩돼지갤로그로 이동합니다. 12.11.30 114 0
339311 오늘도 여전히 프갤답군. [3] 얼룩돼지갤로그로 이동합니다. 12.11.30 71 0
339306 6년차 연봉 자바 이거 너무 적은거 아닌가? [10] ㅁㄴㅇㅁㄴㅇㄴㅇ(59.11) 12.11.30 483 0
339303 아..자바 이거 머하는거냐 나 초본대 제발 알려줘 [2] 쒸퐐좌봐(210.93) 12.11.30 70 0
339302 아 눙물난다 [1] 아이유찡(106.182) 12.11.30 48 0
339301 xml 파서기 좋은거 뭐가 있음? 자바 [1] ㅁㄴㅇㅁㄴㅇㄴㅇ(59.11) 12.11.30 56 0
339300 홀수 마방진 c++ 좀 도와주세요 [1] sucbonga갤로그로 이동합니다. 12.11.30 117 0
339298 왜 이리 비전공생들이 프로그래밍 진입이 많지?ㅉㅉ [3] dsadsa(59.11) 12.11.30 202 0
339297 현 업계에서 윈도우프로그래밍이 차지하는 비율은? [2] CodeCraft갤로그로 이동합니다. 12.11.30 139 0
339296 지잡대생인데 이 정도면 어느정도일까!? [5] CodeCraft갤로그로 이동합니다. 12.11.30 263 0
339295 프로그래밍 공부하고싶은데 해도될까?? [3] 티버애니갤로그로 이동합니다. 12.11.30 196 0
339294 늦었다 정수정•‿•갤로그로 이동합니다. 12.11.30 54 0
339293 형들여기가 고수천국에 빠른답변해준다그래서 부탁드려 ㅜㅜ [6] 사랑합니다 .갤로그로 이동합니다. 12.11.30 82 0
339292 보안업계 돈 못 벌지 않음? 안랩도 연봉이 별로라면 [3] 꼬장왕(124.49) 12.11.30 518 0
339291 프겔러들의 끝판왕 안철수횽님이 운지 하셨음 [3] 꼬장왕(124.49) 12.11.30 134 0
339289 KT 사장... 1000원 인하해서 글로벌 회사 못샀다..... [1] 어휴(182.211) 12.11.30 81 0
339288 사람인이나 잡코리아 보면 울화가 치민다. 어휴(182.211) 12.11.30 69 0
339287 역시 개발은 취미로 하는게 맞다 [5] 어휴(182.211) 12.11.30 191 0
339284 프갤고수님들께 자바스크립트 관련 질문드립니다 [2] 늅늅이(112.152) 12.11.30 46 0
339283 어휴 씹성은 답이 읍다 ㅡㅡ [1] 어휴(182.211) 12.11.30 61 0
339282 파이썬 프로젝트도 많음??? [1] 잉여(58.122) 12.11.30 104 0
339280 sublime text 2에서 표준 입력 받는 방법? [2] 고랭?갤로그로 이동합니다. 12.11.30 83 0
339279 Jquery할려면 자바스크립트는 필수야?? [14] 늬미성녀(222.107) 12.11.29 180 0
339277 제나이 27살. 이제는 결정해야할 시기인것 같습니다. 고민좀 들어주세요. [3] 어렵다(175.127) 12.11.29 282 0
339276 C/C++할 줄 아는데 이걸로 DB 구현 가능하냐? [6] 짜짜구리(118.36) 12.11.29 152 0
뉴스 박시은♥진태현, 암 수술 후 근황 전해...“예전 같지 않고 조금 힘드네요” 디시트렌드 07.05
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2