OllyDbg를 사용하여 실험실 과제를 위해 실행 파일을 리버스 엔지니어링하십시오. 교수님이 명령 프롬프트에 결과를 출력하는 API를 요청하는 질문을했습니다. 사용 된 DLL은 ntdll, kernel32, msvcr100입니다.명령 프롬프트에 출력을 쓰는 데 사용되는 API는 무엇입니까?
0
A
답변
0
두 가지 이상의 방법이 있지만 두 가지가 있습니다. 유명한 두 가지는 WriteConsole과 WriteFile입니다. MSDN 문서에서
:
WriteConsole
는 현재 커서 위치에서 시작하는 콘솔 화면 버퍼에 문자열을 씁니다.
BOOL WINAPI WriteConsole( _In_ HANDLE hConsoleOutput, _In_ const VOID *lpBuffer, _In_ DWORD nNumberOfCharsToWrite, _Out_ LPDWORD lpNumberOfCharsWritten, _Reserved_ LPVOID lpReserved );
의 WriteFile
지정된 파일 또는 입력/출력 (I/O) 장치로 데이터를 출력합니다. 이 함수는 동기 및 비동기 작업용으로 설계되었습니다.
BOOL WINAPI WriteFile( _In_ HANDLE hFile, _In_ LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped );
...
...
문자가 출력을 콘솔에 핸들의 WriteFile을 사용하여 스크린 버퍼에 기록 할 수있다. 이 기능의 정확한 작동은 콘솔 모드에 의해 결정되는 입니다. 데이터는 현재 커서 위치에 기록됩니다. 커서 위치는 쓰기 작업 후에 업데이트됩니다.