今天工作不太忙,继续我的作业。呵呵,不然FCG的老大说我作业通不过那可惨了!
连上华军软件园里,来到最近更新,发现目标:This is "Security Administrator 7.1"一个安全工具。呵呵
URL:http://jx163.onlinedown.net/down/secagent.zip
软件不大,只人八百多K
第一步:。。。。。。先得安装。呵呵。
第二步:运行软件。马上就跳出了要你注册的画面。得,注册就注册吧。写入注册码“456456456”,点“register”小弟E文不好,但直觉认为这个是注册的按钮。:)因为他离写注册码的地方最近。呵呵。
跳出出错的对话框。嘿嘿,有出错的对话框就成。呵呵。下面在SICE中下断点:bpx hmemcpy。
回到程序后,点那个“register”,马上被拦。老样子,按F12连按12下,来到了这里:
0167:004888B6 MOV EAX,[EBP-08] <---这里EAX是我们的假注册码
0167:004888B9 LEA EDX,[EBP-04]
0167:004888BC CALL 0046FF44
0167:004888C1 CMP DWORD [EBP-04],BYTE +00
0167:004888C5 JNZ 004888D4
0167:004888C7 LEA EAX,[EBP-04]
0167:004888CA MOV EDX,00488920
0167:004888CF CALL 00403D20
0167:004888D4 MOV EAX,[004B5AA4]
0167:004888D9 MOV EAX,[EAX]
0167:004888DB MOV EDX,[EBP-04]
0167:004888DE CALL 0049CEE8 <----此call一按F10就死了。没得玩了。得跟进去看看
0167:0049CEE8 PUSH EBP
0167:0049CEE9 MOV EBP,ESP
0167:0049CEEB PUSH ECX
0167:0049CEEC PUSH EBX
0167:0049CEED MOV [EBP-04],EDX
0167:0049CEF0 MOV EBX,EAX
0167:0049CEF2 MOV EAX,[EBP-04]
0167:0049CEF5 CALL 004040BC
0167:0049CEFA XOR EAX,EAX
0167:0049CEFC PUSH EBP
0167:0049CEFD PUSH DWORD 0049CF80
0167:0049CF02 PUSH DWORD [FS:EAX]
0167:0049CF05 MOV [FS:EAX],ESP
0167:0049CF08 MOV EDX,[EBP-04]
0167:0049CF0B MOV EAX,EBX
0167:0049CF0D CALL 00495F50
0167:0049CF12 TEST AL,AL <---这里看一下,啊呀,AL的值是0呀,改1得了
0167:0049CF14 JZ 0049CF52
结果那个AL一改为1就注册成功了,但在第二次启动之时。。。。。。。还是没注册的,得,又得花时间再看看。
就到那个改AL值上的那个call里去转转,说不定有收获呀。:)
0167:00495F50 PUSH EBP
0167:00495F51 MOV EBP,ESP
0167:00495F53 PUSH ECX
0167:00495F54 PUSH EBX
0167:00495F55 PUSH ESI
0167:00495F56 MOV [EBP-04],EDX
0167:00495F59 MOV ESI,EAX
0167:00495F5B MOV EAX,[EBP-04]
0167:00495F5E CALL 004040BC
0167:00495F63 XOR EAX,EAX
0167:00495F65 PUSH EBP
0167:00495F66 PUSH DWORD 004960BC
0167:00495F6B PUSH DWORD [FS:EAX]
0167:00495F6E MOV [FS:EAX],ESP
0167:00495F71 XOR EBX,EBX
0167:00495F73 MOV BYTE [004B6E18],00
0167:00495F7A MOV EAX,004B6E1C
0167:00495F7F CALL 00403C88
0167:00495F84 CMP DWORD [EBP-04],BYTE +00
0167:00495F88 JZ NEAR 004960A6
0167:00495F8E MOV EAX,[EBP-04]
0167:00495F91 CALL 00403F08
0167:00495F96 CMP EAX,BYTE +0C <--一直来到这里,一看原来注册码要大于12
得,跳出去重输吧。再继续下去
0167:00495F99 JZ 00495FA7
0167:00495F9B MOV EAX,[EBP-04]
0167:00495F9E CMP BYTE [EAX],38 <--把注册码的第一位与ASCII的38比,也就是与数字8比
0167:00495FA1 JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FA7 MOV EAX,[EBP-04]
0167:00495FAA CMP BYTE [EAX],38
0167:00495FAD JNZ NEAR 004960A6
0167:00495FB3 MOV EAX,[EBP-04]
0167:00495FB6 CMP BYTE [EAX+02],33 <--把注册码的第三位与ASCII的33比,也就是与数字3比
0167:00495FBA JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FC0 MOV EAX,[EBP-04]
0167:00495FC3 CMP BYTE [EAX+03],31 <--把注册码的第四位与ASCII的31比,也就是与数字1比
0167:00495FC7 JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FCD MOV EAX,[EBP-04]
0167:00495FD0 CMP BYTE [EAX+04],39 <--把注册码的第五位与ASCII的39比,也就是与数字9比
0167:00495FD4 JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FDA MOV EAX,[EBP-04]
0167:00495FDD CMP BYTE [EAX+08],30 <--把注册码的第九位与ASCII的30比,也就是与数字0比
0167:00495FE1 JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FE7 MOV EAX,[EBP-04]
0167:00495FEA CMP BYTE [EAX+09],35 <--把注册码的第十位与ASCII的35比,也就是与数字5比
0167:00495FEE JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00495FF4 MOV EAX,[EBP-04]
0167:00495FF7 CMP BYTE [EAX+0A],53 <--把注册码的第十一位与ASCII的53比,也就是与字母S比
0167:00495FFB JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:00496001 MOV EAX,[EBP-04]
0167:00496004 CMP BYTE [EAX+0B],45 <--把注册码的第十二位与ASCII的45比,也就是与字母E比
0167:00496008 JNZ NEAR 004960A6 <--不是就跳到死亡地带!!
0167:0049600E MOV EAX,004B6E1C
0167:00496013 MOV EDX,[EBP-04]
0167:00496016 CALL 00403CDC
0167:0049601B MOV BYTE [004B6E18],01
0167:00496022 MOV BL,01
0167:00496024 XOR EDX,EDX
0167:00496026 MOV EAX,[ESI+04F4]
记一下,注册码的这几位是:8?319???05SE,哎,那还有几位呢???我再找!一直翻了好几遍都找不到,没办法,只好先把这么位写上先:8031900005SE,一点注册,呵呵,成了,原来他只判断这几位就成了。其他的,你想怎么填都可以。呵呵。要暴破的话,将以上JNZ的跳转改成不跳就成了。还有,将那几位的ASCII码改成我们喜欢的数字也成。呵呵。因为这个软件也没有特殊的ID或用户名之类的东东,觉得可能是只有唯一的注册码。
不知小弟的过程有没有错,请各位大虾指点指点。
My oicq:8895546
My Email:plycy@8848.net
- 标 题:FCG的作业。呵呵 (5千字)
- 作 者:请多指点
- 时 间:2001-7-27 17:32:33
- 链 接:http://bbs.pediy.com