ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리버싱문제 패스워드 숨기기
    공부/리버싱 2014. 5. 6. 00:29

    그냥 패스워드를 main안에서 배열로 지정할경우

    int main()

    {

    char pw [] = "password";

    ~~~~주저리

    }

    code segment 에 소스와 같이 올라가기 떄문에 핵스 덤프만 떠도 패스워드가 나와버림

    E.g. (dumpbin /RAWDATA:BYTES /SECTION:.data simple.exe >filename)


    하지만 #pragma를 이용해 data segment에 있는 .bbs(비초기화 데이터 영역)에

    올릴경우 핵스덤프를 해도 바로 나오지 않는다.

    E.g.

    int count=0;
    // From now on, all the initialized variables will be
    // located in the .kpnc section.
    #pragma data_seg (."kpnc")
    // Note that the period before the name
    // isn't mandatory, just customary.
    char passwd[ ]=PASSWORD;
    #pragma data_seg ()
    // Now all the initialized variables will again
    // be located in the section by default (i.e., ."data").
    char buff [PASSWORD_SIZE]=" ";
    ...
    if (strcmp(&buff[0] , &passwd[0]))
    > dumpbin /RAWDATA:BYTES /SECTION: .data simple2.exe >filename
    RAW DATA #3
    00406000: 00 00 00 00 00 00 00 00 00 00 00 00 45 11 40 00 ............E.@.
    00406010: 04 41 40 00 00 00 00 00 00 00 00 00 40 12 40 00 .A@.........@.@.
    00406020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
    00406030: 45 6E 74 65 72 20 70 61 73 73 77 6F 72 64 3A 00 Enter password:.
    00406040: 57 72 6F 6E 67 20 70 61 73 73 77 6F 72 64 0A 00 Wrong password..
    00406050: 50 61 73 73 77 6F 72 64 20 4F 4B 0A 00 00 00 00 Password OK.....
    00406060: 20 6E 40 00 00 00 00 00 20 6E 40 00 01 01 00 00 n@..... n@......
    00406070: 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 ................




    '공부 > 리버싱' 카테고리의 다른 글

    reversing.kr replace  (0) 2014.08.11
    assem 분석 2  (0) 2014.05.12
    리버싱문제 패스워드 숨기기  (0) 2014.05.06
    assem 분석 1  (1) 2014.05.05
    upx 언패킹 성공  (0) 2013.09.12
    펌 리버싱을 위한 어셈정리  (0) 2013.08.13

    댓글 0

Designed by Tistory.