바이너리 파일 편집하는 소스좀 알려 주세요.

saekdong의 이미지

l.bin 이라는 바이너리파일이 있는데, 특정구간인
AA0000부터 EA1640 까지의 부분을 잘라내어서

D2.bin 이라는 파일에 AC0000부터 EC1640 으로 붙여 넣기
하는 소스가 필요합니다.

D2.bin에 옮겨질때에는 AA0000부터 AC0000바로 윗 부분까지의 빈 공간은 FF로 비워 두는것이 목적입니다.

어떻게 해야할지 난감하여, 급하게 질문 드립니다.

고수 여러분 완벽한 소스 하나만 부탁 드릴께요.

참고로 l.bin 과 D2.bin은 동일한 파일인데 위 구간의 위치만 다를 뿐입니다. 도와주세요...

cinsk의 이미지

dd 명령을 이용하면 아쉬운대로 원하는 기능을 수행할 수 있습니다.
dd 명령은 10진수 값을 받기 때문에 주어진 16진 값들을 먼저 bc(1)를 이용해서 변환합니다.

$ bc -q
ibase=16<RET>
AA0000<RET>
11141120
EA1640 - AA0000<RET>
4200000
AC0000<RET>
11272192
quit
$ _

예를 들면

$ dd if=l.bin of=D2.bin ibs=1 count=4200000 skip=11141120 seek=11272192

은 l.bin의 AA0000-EA1640를 D2.bin의 AC0000에 써 넣습니다.
자세한 것은 dd(1)의 man page를 보시면 됩니다.

saekdong의 이미지

한데 이 방법은 혹 유닉스나 리눅스에서 사용해야 하는것 아닌가요?
지금 저는 윈도우에서 VC++ 을 이용하여 프로그램을 작성해야만 합니다.
C++ 소스로 어떻게 변환하여 공간을 만드는지 전혀 감이 없네요..^^

초보자의 한계인가요 ㅎㅎ^^;;

부탁드려요.

cinsk의 이미지

대충 비슷한 역할을 할 수 있는 pseudo code입니다.

FILE *src, *dst;

int i = count;

src = fopen(source_file, "br");
dst = fopen(destination_file, "br+");

fseek(src, offset1, SEEK_SET);
fseek(dst, offset2, SEEK_SET);

while (count-- > 0) {
  fputc(fgetc(src), dst);
}

fclose(src);
fclose(dst);
saekdong의 이미지

구간 설정은 어떻게 하는거죠? (바이너리는 처음이라..ㅡㅡ;)

가능하다면 헤더파일이 포함된 소스 전부를 좀 부탁드리면 안될까요?

파일명은 위를 적용해서...정말 죄송한 부탁인거 아는데..

지금 너무 막막하네요..

C만 하다가 C++을 하려니 정말 깜깜..ㅠㅠ

부탁드립니다.

saekdong의 이미지

변환 하여 보았는데,

용량이 엄청나게 늘어나 버렸습니다.

28,271KB 가 5,653,487KB 가 되어 버렸네요.

이게 정상인가요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.