많은 분들께서 방문해주시고 질문/답변을 남겨주셔서 정말 감사합니다.
* 되도록 이면 '비밀 댓글' 보다는 '일반 댓글'을 이용해서 질문해 주시기 바랍니다. 비슷한 궁금증을 가지신 분들께도 널리 공유되면 좋겠습니다.
"비도덕적, 불법적" 인 내용은 답변 드릴 수 없음을 이해해 주시기 바랍니다.
댓글, 방명록, 이메일 등으로 많은 분들께서 여러 가지 질문들을 해주십니다.
그중에 정말 좋은 질문들이 많아서 여러분들과 공유하면 좋겠다고 생각하였습니다.
이제부터 저에게 들어오는 모든 질문과 답변들을 이곳으로 모을 것입니다.
앞으로 질문과 답변은 이곳에서 해주세요~
질문에 대한 답변은 저 뿐만 아니라 제 블로그에 오시는 모든 분들께서 하실 수 있습니다.
문제 해결을 위한 방법은 다양합니다. 저 말고도 다른 분들의 답변은 언제나 환영입니다.
"질문은 좋은 것 입니다. 많이 해주세요. ^^ "
* 댓글로 질문하기 어려운 내용들(긴내용, 첨부파일 등)은 제 이메일(reversecore@gmail.com)로 문의해 주세요.
* 제가 사용하는 GMail 은 PE 파일을 첨부하면 전송 거부를 합니다. (압축을 시켜도 그걸 열어서 확인하지요.)
=> 실행 파일을 첨부해서 보내실때는 확장자를 exex, dllx, zipx 등으로 변경해서 보내주세요.
* 댓글이 너무 많이 달리면 제가 질문/답변 빈 포스트를 또 올릴 겁니다. 그쪽으로 계속 질문 댓글 달아주시면 됩니다.
감사합니다.
ReverseCore
'q&a' 카테고리의 다른 글
질문/답변 코너입니다. (3) (381) | 2011.04.13 |
---|---|
질문/답변 코너입니다. (2) (223) | 2010.01.28 |
질문/답변 코너입니다. (295) | 2009.09.21 |
- 이전 댓글 더보기
-
reverser 2014.02.21 12:55
저자님 .exe 파일은 memory rellocation 이 발생할일이 거의 없기때문에 reloc 섹션을 지워도 문제가 없다고 하셨었고 또 요즘은 보안상의 이유로 파일자체에 적혀있는 Imagebase 뿐만아니라 그때 그때 실행할때마다 랜덤한 Imagebase 값을 갖게 된다고하셨는데(A R 어쩌구 네글자 였엿던것같은데 약자는 까먹었습니다..) 뭔가 이 두가지가 공존할수 없는 말인듯한 느낌이 들어서요 ㅠㅠ 분명 제가 뭔가를 잘못이해한것같은데 명쾌한설명 꼭 부탁드립니다 ㅠㅠ!
-
PE FILE에서 IAT 부분에 대해서 질문좀 할게요.
IAT에서 나오는 IMAGE_IMPORT_DESCRIPTOR 구조체에서 OriginalFirstThunk 멤버 변수와
FirstThunk 멤버 변수는 각 각 INT, IAT를 가리키고, 그 INT와 IAT는 IMAGE_THUNK_DATA 구조체 배열로 구성되어 있잔아요.
제가 궁금한 부분은 이 IMAGE_THUNK_DATA 구조체는 유니온으로 멤버변수들이 선언되어 있어서
상황에 따라 사용하는 멤버변수가 다르다고 알고있는데요. AddressOfData 변수가 사용될 때
AddressOfData가 IMAGE__IMPORT_BY_NAME 구조체를 가리키는 포인터로 사용된다고 하던데,
AddressOfData 변수를 사용하지 않을 시엔 IMAGE_IMPORT_BY_NAME 구조체를 사용하지 않는건가요??? IAT 자료들을 여러개 찾아봤는데 모식도나 구조도 같은거 보니까, 일반적으로 모두 IMAGE_THUNK_DATA 구조체에서 IMAGE_IMPORT_BY_NAME 구조체를 가리키게 되있더라구요. 당연하다는 듯이... 이부분이 지금 무척 궁금합니다. 다른 변수를 사용할때는 어떻게 되는것인가에 대해서. -
hoho313 2014.06.10 20:46
안녕하세요 ㅎㅎ
공부하던 중에 여쭤볼게 생겨서요~
제가 이해를 못한건지 아니면 그림이 잘못 캡쳐가 된것인지
그림 18.24의 내용이 잘린거 같은데 맞나용??
그리고 146페이지에 IMAGE_DOS_HEADER 구조채의 크기는 40 이라고 나와있는데 64아닌가용??
그럼 즐거운 하루 보내세요 ^0^***
-
reversecore 2014.06.14 22:36 신고
안녕하세요.
3쇄의 18.24 그림은 잘 못 되었습니다. 아래 errata 페이지에 제대로된 이미지를 올렸습니다.
http://reversecore.com/105
16진수 40 => 10진수 64 맞습니다~
리버싱에서는 16진수 표현이 더 자연스러워서 그렇게 표시하였습니다.
감사합니다.
-
-
ㅇㅇ 2014.07.08 13:26
p.165 Q3문제에서
rva를 raw로 변환했는데, 그 값이 초과되어 rva의 섹션과 raw의 섹션이 다르게 나왔고
그 이유가 VirtualSize값이 SizeOfRawData보다 크기 때문이다.
라고 나와있는데요.
이거 잘못된 것 아닌가요
위의 섹션이 다르게 나오는 경우는
VirtualSize > SizeOfRawData 가 클 때가 아니라
RVA - VA > SizeOfRawData일 때 아닌가요?
반례를 들면, data섹션의 파일 옵셋이 0~1000, VA가 0~1100이고
RVA는 100이라고 가정했을 때
위의 설명대로라면 VirtualSize(1100) > SizeOfRawData(1000) 이므로 RVA->RAW 변환했을 때 섹션이 다르게 나와야 하지만
RVA-VA=100 RAW=100, RVA와 RAW의 섹션은 data로 동일합니다.
-
ㅇㅇ 2014.07.08 13:26
p.165 Q3문제에서
rva를 raw로 변환했는데, 그 값이 초과되어 rva의 섹션과 raw의 섹션이 다르게 나왔고
그 이유가 VirtualSize값이 SizeOfRawData보다 크기 때문이다.
라고 나와있는데요.
이거 잘못된 것 아닌가요
위의 섹션이 다르게 나오는 경우는
VirtualSize > SizeOfRawData 가 클 때가 아니라
RVA - VA > SizeOfRawData일 때 아닌가요?
반례를 들면, data섹션의 파일 옵셋이 0~1000, VA가 0~1100이고
RVA는 100이라고 가정했을 때
위의 설명대로라면 VirtualSize(1100) > SizeOfRawData(1000) 이므로 RVA->RAW 변환했을 때 섹션이 다르게 나와야 하지만
RVA-VA=100 RAW=100, RVA와 RAW의 섹션은 data로 동일합니다.
-
ssss 2014.07.12 21:27
리틀엔디언 질문이요.
책에보면 메모리 값을 읽을 때
어떤건 리틀엔디언 적용해서 거꾸로 읽고
어떤건 적용안하고 메모리 값 그대로 읽고
하던데 왜이러는건가요?
가령
파일을 hxd로 열었을 때
0x00 10 00
0x02 20 00
이고
0x00은 구조체 멤버1의 값
0x02는 구조체멈버2의 값
라고 했을때
책에서
이 구조체멤버의 값을 읽어줄때
구조체멈버1: 1000
구조체멤버2: 0020
이런식으로 하나는 리틀엔디언 적용안하고
하나는 적용하고
이러는데 왜 이러는건가요?? -
Say-Y 2014.09.01 01:13
책204쪽 notepad_upx.exe 의 ep code 부분에
예/아니오 중에 아무거나 선택해서 넘어가면 그림 15.3과 같이 upx ep 코드가 나타납니다.
라고 되있는데 바로 notepad.exe 의 ep코드와 같은 부분으로 넘어갑니다. 물론 0101532f의 upx ep코드가 있긴 합니다만. ollydbg 신버젼2.0인가 를 사용해서 그런가요? 그렇다면 upx ep에서 시작하려면 어떻게 해야하나요? -
Seo 2015.01.07 14:23
p76 ~ 77에 있는 StackFrame에 대해 질문이 있습니다.
StackFrame.cpp를 비주얼스튜디오를 이용해서 exe 파일을 생성했습니다.
(최적화 옵션을 off 했습니다.)
올리디버거로 StackFrame.exe 파일을 열고, 401000 주소로 이동하려고 했습니다.
그런데 401000 주소는 보이지 않아요.
제 컴퓨터에서는 00401000 주소가 아니라 002C1000으로 나타납니다.
어셈블리 내용들은 교재와 똑같이 나오는데,
주소가 다르게 출력되는 상황이에요.
00401000으로 출력되게 하려면 어찌해야 하는지 궁금합니다!! -
yOkang 2015.01.13 16:36
DLL 인젝션, 처음 부분인 메시지 후킹 실습 관련 질문좀 드릴게요.
HookMain.cpp / KeyHook.dll 이용해서 , 메모장 열어서 키보드 입력시
입력은 안먹히긴하는데, HookMain.exe 가 뻗어버리고, 내용상으로는 노트패드명
확인해서 노트패드인 경우에만 입력을 후킹하는걸로 되어있는데,
다른 프로그램에서 키보드 입력을 해도 먹히지 않으면서 뻗어버리네요.
그리고, 프로세스 익스플로러에서 dll 인젝션됬는지 확인하려고 계속 체킹하는데.
노트패드에 KeyHook.dll이 인젝션되지 않은건지 됬는데 뻗어서 안뜨는건지...
확인이 안되네요. 뭐가 문제일까요? -
이경묵 2015.06.30 12:38
감사합니다. 좋은 책 감사합니다.
책을 보고 따라가는중 INT에서 값을 따라가니 IMAGE_IMPORT_BY_NAME 구조체로 가게 되는데요 다른 블로그들도 같이 보면서 공부하고 있는데
예전블로그에는 INT,IAT가 IMAGE_THUNK_DATA라는 구조체의 배열이라고 되있던데 따라가보니 저자님이 쓰신 책내용 대로 였습니다.
혹시 IMAGE_THUNK_DATA는 지금 사용 되지 않는 것인가요? 아니면 제가 간과하고 넘어간 부분이 존재한건가요 궁금합니다.
좋은 하루 보내세요! -
이시 2015.07.18 03:38
안녕하세요 제 ollydbg에서 라벨과 코멘트가 저장이 안되는 것 같습니다.
사용중인 운영체제는 윈도우8 64bit입니다.
odbg는 110을 사용하고 있고 UDD폴더 디렉토리 경로와 plugin 경로 설정을 다 해주었습니다.
라벨과 코멘트 입력은 정상적으로 됩니다.
* 책에 기제된 라벨이 보이지 않을때의 방법을 시도 해 봤을 때도 라벨이 보이지 않습니다.
실컷 코멘트와 라벨을 달아놓고 Ctrl+F2로 재실행을 하였을때 기존의 코멘트와 라벨이 모두
로드가 되지 않습니다. 답변 부탁드립니다. -
안녕하세요 .
책하고 워게임하고 병행해가며 공부중입니다 .
너무나 기초적인 부분인데 책에도 별 언급이 없고,
찾아봐도 잘 모르겠어서 이렇게 질문글을 남기네요 .
올리에서 옵션에 어페어런스 메뉴에서 컬러탭에 하이라이트 텍스트를 빨간색으로 설정을 해둔 상태입니다.
근데 이게 레지스터가 바뀔때는 적용이 잘 되는데, 스택창이나 헥스덤프창은 하이라이팅이 되지 않네요. 어디선가 이 바뀐값들이 하이라이팅 되는걸 본적이 있는데 설정 방법을 알고싶어요.
답변 부탁드립니다. 감사합니다