2010-08-16 9 views
2

Pocket PC에서 실행 파일을 패치해야합니다.패치 실행 가능 파일?

IDA Pro로 ARM 실행 파일을 분해합니다. 하지만 바이너리를 편집 할 수는 없습니다. 아시다시피 Ollydbg는 바이너리 편집/어셈블리 코드 추가 (오른쪽 클릭 -> 어셈블)를 지원하지만 ARM을 지원하지 않습니다. 그래서 IDA Pro로 해체합니다. 그러나 IDA에서 내 어셈블리 코드를 ARM Executable에 추가 할 수 없습니다. "편집> 패치 프로그램> 어셈블"을 실행하면 오류가 발생합니다. (죄송합니다.이 프로세서 모듈은 어셈블러를 지원하지 않습니다.)

내 어셈블리 코드를이 ARM 실행 파일에 어떻게 추가 할 수 있습니까?

감사합니다 ...

답변

0

그런 다음, 어셈블러로 (전체) 바이너리를 분해 (예를 들어 GNU/바이너리 유틸리티 도구) 바이너리로 돌아갈 어셈블러를 사용을 시도 할 수 있습니다. 그런 다음 일단 작동하면 어셈블러에 수정 사항이 추가됩니다.

또 다른 대안은 새 함수를 어셈블하는 것입니다. 새 코드를 배치 할 수있는 위치에서 이진 코드를 찾아서 지시 사항 중 하나 또는 두 개를 새 코드의 분기 링크로 바꿉니다. 이것은 손으로 바이너리를 수정하는 것이지 GUI 도구가 할 일이 아닙니다. 분기 링크 명령을 직접 계산해야합니다.

+0

두 번째 방법은 나에게 더 유용합니다. 저는이 방법을 x86 실행 파일 용 Ollydbg에서 사용했습니다. 대답 해줘서 고마워요. 그러나 나는 손 수정을 이해하지 않았다 ?? 수정할 프로그램/소프트웨어는 무엇입니까? – newbiereverser

+0

그리고 그런데, 내가 패치하고 싶은 프로그램은 Windows Mobile에서 실행 중입니다. 그래서 gnu/binutils 도구를 사용할 수 있습니까? 감사.. – newbiereverser

1

아니요 특히이 좋지만 일반적으로 명령어 세트 참조를 찾고 명령 인코딩을 찾은 다음 디스 어셈블리가 원하는 것과 일치 할 때까지 hexdump로 바이올린을 만듭니다.

gas을 사용하여 지침을 조합 한 다음 16 진수 덤프를 복사 할 수도 있습니다.