2013-03-09 2 views
1

그래서 사용자가 게임 모드에서 앱을 사용할 수 있도록하기 위해 특정 앱을 연결하는 jailbrake 조정을하고 있지만 지금까지는 작동하도록 설정할 수있는 유일한 방법은 ASLR을 사용 중지하는 것입니다. 앱. 법률 때문에 앱의 ASLR 비활성화 버전을 출시 할 수 없으므로 ASLR을 사용하지 않도록 설정하지 않은 상태에서 앱의 메모리 위치를 계산하는 방법을보고 싶습니다. 이전에이 작업이 완료된 것을 본 적이 있었으며 다른 사용자가 다시 작성하는 방법을 알고 있는지 궁금해했습니다.ASLR을 비활성화하지 않고 앱이 메모리에있는 위치를 계산하는 방법은 무엇입니까?

+0

나는 이것이 탈옥을 요구하는 응용 프로그램이라고 가정하고 있습니까? –

+0

"시작시 특정 앱에 연결됩니다."- 아마도이 앱의 내용과 그 앱에 푹 빠져야 할 것이 있다면 더 쉽게 도움이 될 것입니다. –

+0

@RichardBrown이 트윅은 ​​모바일 기판에서 실행되며, 탈옥을 통해서만 가능합니다. – jocopa3

답변

1

성공적으로 비틀기 (dylib)를 대상 응용 프로그램에 삽입 한 경우 dyld 함수를 사용하여 ASLR 오프셋 (가상 메모리 주소 슬라이드)을 가져올 수 있습니다. 당신의 오프셋 실행 파일을 얻으려면 가정, 여기에 코드 조각 예제 :이 도움이

for (uint32_t i = 0; i < _dyld_image_count(); i++) // enumerate all images (i.e. executables and libs) 
{ 
    const char *name = _dyld_get_image_name(i); // get full path of the image 
    NSString *path = [NSString stringWithFormat:@"%s", name]; 
    if ([path hasSuffix:@"MinecraftPocket"]) NSLog(@"slide = %0x0lx", _dyld_get_image_vmaddr_slide(i)); // log the vm slide 
} 

희망!

관련 문제