环境:
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 !”,这个就是答案