lena tutorial 3 lena tutorial 3은 잔소리 메시지 창을 제거하는 것이다. 프로그램을 실행하면 Remove the nags to register This will make program fully registered :)) 메시지 창을 확인할 수 있다. OK 를 선택하여 메인 프로그램을 확인하고 프로그램을 종료하면 Oops! I am not registered!! 메시지 창을 출력한다. 이 두개의 메시지 창을 제거한 버전을 만들어보자. 먼저 첫 번째 메시지 창을 제거하기 위해서는 GetModuleHandleA 함수의 반환 값이 0이어야 한다. . text : 00401002 call GetModuleHandleA . text : 00401007 mov hInstance, eax . text : 0040100 C cmp eax, 0 . text : 0040100 F jz short loc_401024 그러나 0을 반환한다는 것은 모듈의 핸들을 얻지 못했다는 것이므로 프로그램이 정상 동작하지 않는다. 다시 말해 프로그램이 정상적으로 실행될 경우 반드시 출력되는 메시지 창이라고 이해할 수 있다. 여러 패치 방법이 있지만 여기서는 비교 조건을 변경하는 것으로 (jz -> jnz) 메시지 창 로직을 건너뛰자. . text : 0040100 F jnz short loc_401024 메인 프로그램 메시지 박스 호출(MessageBoxA) 후 종료 시 ExitProcess 함수 수행 전에 있는 메시지 창 생성 로직을 건너 뛰기 위해서 . text : 00401039 jmp short loc_40104D 로 수정하여 패치된 파일을 저장한다. 패치된 파일 실행 시 안내 메시지 창이 제거된 것