문제

디스어셈블러에 대해 아는 사람 있나요? ARMV4i 실행 파일과 DLL?

나는 매우 드물게 작성하고 있는 플러그인 DLL을 가지고 있습니다. data abort (<5%의 경우) 특정 기능으로 범위를 좁혔습니다(dumpbin 및 주소 출력을 통해). data abort).다만 꽤 큰 기능이라 좀 좁혀보고 싶습니다.나는 그것이 한 순간에 일어나고 있다는 것을 안다. memset() 호출했지만 해당 특정 함수에는 약 35개가 있으므로 디스어셈블리를 살펴보면 실제로 문제가 있는 부분을 파악할 수 있기를 바랐습니다.

도움이 되었습니까?

해결책

IDA Pro는 확실히 ARM 분해를 수행할 것입니다.그리고 그 분들(Datarescue)이 현지 시간으로 오후 11시쯤에 저한테 라이센스를 주셨던 적이 있어서 추천하고 싶어요...

나는에서 본다 http://www.datarescue.com/idabase/ 회사가 좀 재정비됐지만 그래도 좋은 제품인 것 같아요.

새 출판사 링크는 다음과 같습니다. http://www.hex-rays.com/idapro/

다른 팁

나는 그것을 믿는다 IDA 프로 당신이 원하는 것을 할 것입니다.O'Reilly Security Warrior 책에서 언급되었으며 Windows Mobile 개발자 포럼에서 권장되는 내용을 본 적이 있습니다.

매력적인 Windows Mobile / Pocket PC / Win CE (ARM CPU용) 디스어셈블러 및 어셈블러입니다.

셰어웨어 디스어셈블러인 BDASM을 살펴볼 수도 있습니다. 이후 버전에는 ARM 플러그인이 있습니다.홈페이지가 다운된 것 같은데 검색해보시면 쉐어웨어 배포판이 나옵니다.

간단한 ARM 디스어셈블러의 소스 코드, 무장해제, 도 사용 가능합니다.

binutils(리눅스 컴파일러 도구) objdump를 사용하여 디스어셈블리 "objdump -b 바이너리 -m arm7tdmi -D file_name"을 생성할 수 있습니다.

-아담

몇 년 전 저는 임베디드 작업을 하다가 사용했던 ARM 디스어셈블러를 발견했습니다.하지만 이름은 기억나지 않습니다. 에뮬레이터 같은 더 큰 패키지의 일부였던 것 같지만요.

귀하의 경우 컴파일러에게 컴파일된 코드의 어셈블리 목록을 생성하도록 요청할 수 있습니까?그것은 당신에게 어느 정도 범위를 제공하는 데 도움이 될 수 있습니다.

실패하면 스택 추적만 얻을 수 있다면 함수를 하나 이상의 새 함수로 나눌 수 있습니다.그런 다음 새 함수를 다시 하나 이상으로 나눕니다.이것이 검증된 "분할 정복" 방법입니다.그리고 한 함수에 memset()을 35번 호출한다면 디자인 관점에서도 좋은 아이디어일 수 있습니다!

업데이트:내가 사용한 패키지를 찾았습니다. ARM페타민.제가 개발 중이던 ARM9 코드에는 효과가 있었지만 꽤 오랫동안 업데이트가 되지 않은 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top