2011-12-06 4 views
2

저는 악성 코드라고 생각되는 코드 조각을 디 컴파일했습니다. 그리고 나는 그것이 무엇인지 알아 내려고하고 있습니다. 특정 창 제목을 검색하고 해당 창의 이름을 사용하여 나머지 지침을 디코딩합니다. 필자는 일반적인 창 제목 (메모장, 문서 1 - Microsoft Word 등) 목록을 실행하여 올바른 창 제목을 찾아 냈습니다. 내가 파이썬에서 사용하는 해시를 다시 한해당 제목 해시 값을 사용하여 특정 창 찾기

:

def encode(inStr): 
    a = 0x133F00D 
    i = 0 

    for j in inStr: 
    temp = ord(j)*8 * ((i << 0xC)+1) 
    a = a^ temp 
    i = i + 1 
    print hex(a) 

내가 나에게 값 0x2227205을 제공하는 문자열을 찾고 있어요. 해쉬 함수를 살펴보면, 그것은 한 가지 방법이고 충돌을 일으킨 것처럼 보입니다. 어떤 창 제목을 잡으려고 시도하는지 알아내는 좋은 접근 방법은 무엇입니까? 일반적인 창 제목의 malwire 예방 위치에 명부 있는가? 사전 공격을 실행해야합니까? 최선의 접근 방식은 무엇입니까?

+0

맬웨어 작성자가 코드를 난독 화하려는 노력을 했는데도 공통 제목 사전에서 창 제목을 찾지 못할 것으로 의심됩니다. 제목을 눈에 잘 띄게 만들 수있는 유니 코드 대체가 있습니다. 그럴듯하지만 추측하기는 어렵다. 누군가이 악성 코드를 전에 만난 적이없는 한, 당신은 무차별 공격 검색에 매달려 있을지 모릅니다. – Dave

답변

0

창 제목이 충분히 길면 무차별 공격으로 발견되지 않으며 아마도 해시와 일치하는 제목을 찾는 데 도움이되지 않습니다. 맬웨어는 자체의 다른 인스턴스가 있는지 여부를 확인할 수 있습니다.

VM이나 심지어 더 나은 전용 컴퓨터 (네트워크가 없거나 위조 된 네트워크가 활동을 확인하지 못했을 수도 있음)에서 멀웨어를 실행하여 디버거를 사용하는 것이 좋습니다. 그런 다음 해시와 일치하는 창을 찾을 수 있는지 확인할 수 있습니다.

그 파이썬 코드 btw를 고수하면 맬웨어와 동일한 오버플로 동작 (특히 정수 길이가 동일)을 유지해야합니다.