2012-01-20 1 views
2

리버스 엔지니어링 악성 코드에 대한 전문 지식을 얻기 위해 어셈블리 언어를 배우려고합니다. 내 질문은 시장에서 사용할 수있는 정교한 디 컴파일러가있을 때 리버스 엔지니어링을위한 어셈블리 언어를 배우는 것이 가치가 있는지 여부입니다 (16 진수의 디 컴파일러는 내가 들었던 것에서 아주 좋습니다).리버스 엔지니어링과 디 컴파일 비교

역 컴파일은 원래 코드를 재현하지 않지만 어셈블리 언어로 코드를 이해하는 복잡성은 줄입니다. 그렇다면 어셈블리 코드를보고 리버스 엔지니어링을 시도한 이유는 무엇입니까?

감사합니다.

+0

맬웨어를 리버스 엔지니어링하려면 잘 조립해야합니다. 나는 읽을 수있는 것보다 빨리 asm을 읽을 수있는 사람을 알고 있었다. – ninjalj

+1

어셈블리 코드는 당신의 걱정거리 중 가장 작다. 내 여동생 모임을 가르 칠 수 있었어. 가장 큰 문제는 제어 흐름과 데이터 흐름을 해독하는 것입니다. 어쨌든 당신이 이것에 대해 진지하다면, 단지 어셈블리를 배우십시오. 귀하의 질문을 되돌리려면 왜 어셈블리를 배우지 않는가? – harold

답변

8

맬웨어를 리버스 엔지니어링하려면 어셈블리 언어를 잘 알아야합니다. 처음에는 맬웨어를 작성하는 사람이 디 컴파일러를 차단하는 데 꽤 효과적입니다. 또한 원래 코드가 어셈블리에 작성된 경우 상위 수준 소스로 잘 디 컴파일되지 않습니다. 특히 잘 최적화 된 경우.

+1

아마도 대부분 디 컴파일되지 않습니다. – ninjalj

+3

또한 디 컴파일하면 결과가 다음 International Obfuscated C Code Contest에서 우승 할 수 있습니다. –

5

이것을 위해 어셈블리를 반드시 배워야합니다. 비록 디 컴파일러 (16 진수)가 이해를 돕기는하지만, 대부분의 자체 수정 및 인코딩 된 맬웨어는 처음에 어셈블리로 작성된 디코더를 포함합니다. 따라서 더 높은 수준의 언어로 디 컴파일하는 것은 매우 어렵습니다.