[C#] 파일의 특정 Offset(위치)에 값을 쓰고 싶습니다.
글쓴이: zosowo / 작성시간: 수, 2015/02/11 - 9:33오전
안녕하세요.
C#으로 PE Editor를 만들고 있습니다.
FileStream 클래스를 이용해서 파일을 읽어왔구요.
FileStream fs = new FileStream(Filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); //텍스트 박스에 입력한 2byte를 byte[] data에 넣습니다. //GetBytes 함수는 byte[]로 변경해주는 함수입니다. UInt16 Value = Convert.ToUInt16(Btn_Field_Original.Text, 16); byte[] data = GetBytes(Value, false); fs.Write(data, 0, data.Length); fs.Close();
이렇게 파일 맨 앞 2byte를 파일에 쓰는 것은 성공했습니다.
그런데 PE Editor 특성상 제가 원하는 곳 여기저기를 수정해야합니다.
어떻게 특정부분에 값을 쓸 수 있을까요?
예를 들자면,
Base가 0x000000E0 이고, offset이 0x000000A2 라면
값이 합쳐진 0x00000182 위치에 제가 원하는 값을 쓰고 싶습니다.
아니면, 파일 포인터를 일정 크기만큼 이동시켜서 해당 값을 수정하고 싶어요.
어떻게 해야할까요???
//////
PE 파일을 불러오는 것은
http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&wid=1296
위 사이트의 코드를 참조했습니다.
위 사이트 코드에 있는 것들을 가져와서 각 구조체에 초기화된 값을 텍스트 박스에 출력한 상태이구요
해당 값을 수정 후 확인버튼을 누르면, 파일내부가 수정되게 하고싶습니다.
맨 앞 2byte 바꾸는건 성공했는데, 각 구조체의 값들을 바로바로 수정해서 파일에 적용하고 싶습니다. 파일 포인터를 어떤식으로 변경해야 되는지 모르겠습니다.
도움좀 부탁드려요.
Forums:
댓글 달기