rootme elf-antidebug

2018. 5. 22. 14:220x02 Reverse Engineer/0x03. Etc

728x90

분석.pptx

// rootme

// elf-antidebug solve

// c0nstant


// 풀이 


// 바이너리를 키면 안티디버깅 int 3, int 80밖에 안보인다.

// 텍스트로 바이너리를 보면 사용되고 있지 않은 함수 sub_80480E2가 있다.

// sub_80480E2에서 특정 주소까지 xor을 시키게 되는데 여기서 opcode가 복원이 된다.

// 복원 된 opcode를 덤프 떠서 새로운 elf를 만든 다음 루틴 분석을 진행한다.


// 루틴은 byte씩 0xfc로 xor를 하게 된다. 


#include <stdio.h>


int main(int argc, char*argv[])

{

// 0xA5, 0xCF, 0x9D, 0xB4, 0xDD, 0x88, 0xB4, 0x95, 0xAF, 0x95, 0xAF, 0x88, 0xB4, 0xCF, 0x97, 0xB9, 0x85, 0xDD

// xor 0xfc

short flag[] = { 0xA5, 0xCF, 0x9D, 0xB4, 0xDD, 0x88, 0xB4, 0x95, 0xAF, 0x95, 0xAF, 0x88, 0xB4, 0xCF, 0x97, 0xB9, 0x85, 0xDD };

for (int i = 0; i < sizeof(flag)/sizeof(flag[0]); i++)

{

flag[i] =  flag[i] ^ 0xfc;

printf("%c", flag[i]);

}

return 0;

}


'0x02 Reverse Engineer > 0x03. Etc' 카테고리의 다른 글

[Rootme] Go lang Basic  (0) 2019.01.31
rootme elf nanometis  (0) 2018.05.22
ROOTME PE-SEHVEH  (0) 2018.05.21
ROOTME Macho keygen or not  (0) 2018.05.19
ROOTME ARM  (0) 2018.05.19