2011-04-19 4 views
0

Windows에서 OLLdbg를 사용하여 역 스킬을 연습하고 있습니다.실행 파일이 실행 중일 때 데이터 흐름을 추적하십시오.

대화식 창에서 입력을 요청하는 경우 "일련 번호"라고합시다. 내 질문은 사용자가 창에서 작동 할 때 디버거 창 내에서 관련 데이터 흐름을 찾기가 어렵다는 것입니다. 예를 들어, "F9"를 클릭하면 명령 흐름을 볼 수 있습니다. 하지만 윈도우에서 입력 할 때 어떤 명령어가 실행되었는지 알 수 없습니다.

내 목표는 올바른 입력 요구 사항을 무시할 수 있도록 일부 점프 명령어를 찾아 변경하는 것입니다. 나는 명령이 arg #과 관련된 명령에 아주 가깝고 TEST 명령과 관련이 있어야한다고 생각한다.

힌트 또는 트릭을 찾고 있습니다. 감사.

답변

1

당신이 할 수있는 한 가지는 텍스트 필드에 무엇인가를 입력 한 다음 치트 엔진과 같은 응용 프로그램을 사용하여 메모리에이 문자가 저장되어 있는지 확인하는 것입니다. 그런 다음 ollydbg의 첫 번째 문자 주소에 메모리 (액세스시) 중단 점을 넣을 수 있습니다. 그런 다음 시리얼을 확인하는 버튼을 누릅니다. 명령이 메모리의이 부분을 액세스하면 중단됩니다. 문자열을 검증하는 코드의 일부입니다. 이제 여기에서 변경하려는 명령어를 찾기 위해 코드가 수행하는 작업을 이해해야합니다.

응용 프로그램의 안전성에 따라이 방법이 효과적입니다. 보다 안전한 응용 프로그램을 사용하면이 기능이 작동하지 않을 가능성이 높습니다. 방금 리버스 엔지니어링을 시작하면 크래킹을 위해 만들어진 쉬운 애플리케이션을 찾고 보안이 강화 된 애플리케이션을 개발하는 것이 좋습니다. 이 "crackmes"중 많은 부분을 찾을 수있는 사이트는 crackmes.de입니다. 또한 lene151의 자습서 here을 제안 할 수 있습니다. 리버스 엔지니어링에서 본 최고의 튜토리얼

+0

링크가 매우 유용합니다. – SecureFish

+0

링크가 도움이됩니다. "GetWindowTextA"에 BP를 설정하면 등록 체계 코드에 착륙 할 수있게됩니다. 그러나 약 300 개의 명령이 포함 된 계획이 다소 복잡해 보입니다. 내 입력 일련 번호가 Arg2이고 "추측 된 Arg1"과 같은 중요한 정보를 읽을 수 있습니다. 또한 지침을 느낍니다 : CMP DWORD PTR SS : [], DCBAABCD; JNE 7707003B0 (점프하지 않음)은 내가 작업 할 수있는 포인트입니다. 전체 계획을 명확히하고 하나의 솔루션을 찾아내는 데 더 많은 시간이 필요합니다. – SecureFish

관련 문제