環境:
Windows xp sp3
打開,是只有一個key,輸入個goodname試試,錯誤。。。記下錯誤信息
查殼,無殼的VB程序。
查找字符串:
00402036 UNICODE "kXy^rO|*yXo*m\kMuOn*+"
00402090 UNICODE "RiCHTiG !"
004020AF UNICODE " RiCHTiG !!!! .... weiter mit dem N"
0040214A UNICODE "LEiDER Falsch ! "
00402169 UNICODE "Leider Falsch! Nochmal veruschen ! Wenn Du es nicht schaffen solltest, schreib mir ! Andrenalin@g"
感覺這個和第一個很像嘛,第一個里最上面那個字符串就是答案?
0040202B > \8D45 CC lea eax,dword ptr ss:[ebp-0x34]
0040202E . 8D8D 54FFFFFF lea ecx,dword ptr ss:[ebp-0xAC]
00402034 . 50 push eax ; /var18
00402035 . 51 push ecx ; |var28
00402036 . C785 5CFFFFFF>mov dword ptr ss:[ebp-0xA4],Andréna.0040>; |UNICODE "kXy^rO|*yXo*m\kMuOn*+"
00402040 . C785 54FFFFFF>mov dword ptr ss:[ebp-0xAC],0x8008 ; |
0040204A . FF15 40414000 call dword ptr ds:[<&MSVBVM50.__vbaVarTs>; \__vbaVarTstEq 又是比較
00402050 . 66:85C0 test ax,ax
00402053 . 0F84 C0000000 je Andréna.00402119 ; 這個是跳轉
00402059 . FF15 6C414000 call dword ptr ds:[<&MSVBVM50.#534>] ; MSVBVM50.rtcBeep
0040205F . 8B1D 94414000 mov ebx,dword ptr ds:[<&MSVBVM50.__vbaVa>; MSVBVM50.__vbaVarDup
00402065 . B9 0A000000 mov ecx,0xA
0040206A . B8 04000280 mov eax,0x80020004
0040206F . 898D 64FFFFFF mov dword ptr ss:[ebp-0x9C],ecx
00402075 . 898D 74FFFFFF mov dword ptr ss:[ebp-0x8C],ecx
0040207B . 8D95 44FFFFFF lea edx,dword ptr ss:[ebp-0xBC]
00402081 . 8D4D 84 lea ecx,dword ptr ss:[ebp-0x7C]
00402084 . 8985 6CFFFFFF mov dword ptr ss:[ebp-0x94],eax
0040208A . 8985 7CFFFFFF mov dword ptr ss:[ebp-0x84],eax
00402090 . C785 4CFFFFFF>mov dword ptr ss:[ebp-0xB4],Andréna.0040>; UNICODE "RiCHTiG !"
0040209A . C785 44FFFFFF>mov dword ptr ss:[ebp-0xBC],0x8
一種映射關系了,不難算出“o”->"y"是10,“goodname”每一位加上10就是“qyynxkwo”了。
比較的時候可以看出是用“qyynxkwo”和"kXy^rO|*yXo*m\kMuOn*+"進行比較,那么將"kXy^rO|*yXo*m\\kMuOn*+"的
每一位減10就是結果了:“aNoThEr oNe cRaCkEd !”,這個就是答案