안녕하세요 injection과 hooking 공부 중 궁금한게 생겨서 질문드립니다. dll을 Injection하고 API hooking한 A라는 함수가 오래걸리는 작업인데(약 10초라 가정) 그 A함수에 진입하였고 그과정에 dll을 unInjection하면 할당한 메모리가 날라가 다음 A함수에 step을 진행하면 프로세스에 영향이가 문제가 있는 걸로 알고 있습니다. 혹시 프로세스에 영향 없이 안전하게 unInjection하는 팁이 있을까요?
1.훅함수를 꼭 네이키드로 설정해야 하는지 궁금합니다. 그냥 프롤로그 에필로그 포함되게 함수를 작성해도 되는 것 아닌지요? 2.검색해보니 훅함수에서 원본함수 사용하는 경우 멀티스레드환경시 원자적 락과 기능저하를 예방하기 위해서 트램폴린 기법을 사용한다고 되어 있는데 강의에 명시된 원본함수의 프롤로그를 다시 임시로 원복하는 방법과는 다르게 훅함수 내에서 원본함수를 다시 호출하여 그 원문을 실행시키고 종료시 스택프레임의 리턴주소정보를 이용해 훅함수로 되돌아가는? 방법이라고 이해했습니다. 이것이 맞는 것인지... 여쭤봅니다.
안녕하세요 강사님. 8강과 9강에서는 testFunc을 targetFunc의 도입부에 넣어 실행을 시키고 main으로 다시 돌아오도록 코드가 되어있는데요 main의 시작점과 리턴을 희망하는 위치를 계산해보면 강의 자료보다 큰 값이 나옵니다. 질문1. x86으로 최적화를 하지 않고 똑같이 실행을 했는데 왜 다른지 궁금합니다. 제 코드를 디스어셈블리에서 보면 강의에서 보이는것보다 많은 기계어들이 보입니다. 질문2. "jmp main + 86h" 에서 86대신 D0 이런식으로 계산 결과가 나왔을 때 빌드 에러가 발생하고 있습니다. 0xD0 이런식으로 넣으면 빌드 에러는 나지 않지만 다른곳으로 점프를 하는것 같고요. 어떻게 해결을 해야할까요?
안녕하세요. 개발자는 아니지만 업무에 꼭 필요한 내용이 있어서 해당 강의를 수강하게 되었습니다. 사전지식이 전혀 없는 상태에서 열심히 검색하며 강의를 듣고 있는 상태입니다. 함수 프롤로그와 에필로그 강의 9분 20초 부분에 F9 를 눌러 브레이크 걸어주고 F5를 했을 때 브레이크가 되지 않고 넘어가버립니다. 잠깐 1초정도 브레이크가 되었다가 그냥 넘어가는 바람에 디스어셈블리 창도 뜨지 않습니다. [종단점 설정 확인] [F5 실행 시 상태 확인] 혹시 제가 놓치는 부분이 있을까요?
안녕하세요 강사님 11.inlineHook 예제를 debug 빌드로 실행하면 pfOpenProcess에서 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. 뭔가 강의중에 언급하신 stack memory 고장같은데 이유를 아시나요? function prologue 디스어셈블이 조금차이가있는데 어차피 5바이트만큼 백업해두니 상관없는것은 맞나요?
안녕하세요 강사님 MyMessageBox안에서는 MessageBoxW를 쓴 이유를 제가 제대로 이해한게 맞나요? MessageBoxA로 바꾸니까 stack overflow 가 생기는것 까지는 확인하였습니다. iat hook으로 인해 MessageBoxA 호출 -> IAT 에서 메모리 참조 -> MyMessageBox -> MessageBoxA호출 -> .. 무한 반복 될뻔한것을 MessageBoxA 호출 -> IAT 에서 메모리 참조 -> MyMessageBox -> MessageBoxW호출 후 그냥 return 0 -> main으로 무사히 돌아옴 이렇게 된건가요?
안녕하세요, 강사님 수업에 사용된 예제 (x86) 06:03 해당 강의가 아래 화면과 같이 재생이 되지 않고 있습니다. 우측에 스크립트가 있는 것으로 보아, 소스코드 이외에 강의가 있는 것으로 보이는데, 아래와 같은 에러 메시지가 발생하고 있습니다. 해당 강의 이외에 앞뒤 강의는 정상적으로 재생 되는 것을 확인했습니다. 위 강의에 대해 한번 확인 부탁드립니다! 감사합니다.