先谢谢提供我如何将程式码复制出的朋友们.我会试试看. 下面也是新年时的"产品". ================================================================= <一> 摘要 software : sneaky mail 1.1 home page : http://mason.gmu.edu/~rmcclana file name : sneaky username : 50104225655198758769 password : 6742214742728776356666147347 <二> 缘起 这是一个"号称"能丢匿名信的e-mail程式,先别太高兴没看到号称两个字吗,所以用它来骗骗不懂的人就罢了,现在的mail server大都有防备的,遇到高手还是一样把你抓出来的,不信先寄封e-mail给你自己再用mail程式看看它的header吧?所有的资料都在上头!其实类似的程式也不少,但现在的系统管理者也不是省油的灯,许多mail server都有防备的!未注册版只能使用15天. <叁> 执行情形* (1) 载入soft-ice後执行sneaky mail,进入注画面,username处已经有一串号码"50104225655198 758769"在那,所以直接在password处填入1234567890,Ctrl-d进入soft-ice後下bpx hmemcpy指令,按F5回到注册画面,按下OK,马上进入soft-ice. (2) bd *,按F12共12次後出现错误画面返回win95. (3) 重覆1-2,这次按F12共11次,再来用F10去追. (4) 一开始 0137:00404606 LEA EAX,[EBP-14] 0137:00404609 CALL 00422549 继续按F10一直到 0137:0040462E MOV ECX,[EAX+0000009C] ..... [EAX+9C]中是输入的password 0137:00404634 CMP DWORD PTR [ECX-08],00 ..... [ECX-08]=0Ah=10d 0137:0040463A JNZ 0040467A ..... 还没猜出这里是做什麽吗? 比对输入password长度>0 继续按F10 0137:0040467A SUB ESP,04 0137:0040467D MOV EAX,[EBP-10] 一直到 0137:004046A9 MOV EAX,[EAX] ..... [EAX]中是一串数字,难道是 注册码! 在这里你可以停下来,把这组号码抄下,重新回到注册画面,用他当password,注册成功的画面就会出现啦(^^).当然我们要发挥研究精神继续追下去看看. 继续按F10 0137:004046AB MOV ECX,[EBP-10] 0137:004046AE PUSH EAX 0137:004046AF MOV EDX,[ECX+0000009C] ..... [ECX+9C]中是输入的password 一直追踪到 0137:0040475B CALL [00443C7C] ..... 程式结束返回win95 (5) 由上面可推测比对密码的地方应该是在0137:004046AF到0137:0040475B间,我们就先追追第一个被呼叫的副程式 0137:004046B6 CALL 40D030 0137:0040D030 SUB ESP,04 0137:0040D033 CMP DWORD PTR [0043CD3C],00 按F10跟下去 0137:0040D07C MOV EDX,[ESP+14] ..... [ESP+14]出现输入的password 0137:0040D080 MOV ESI,[ESP+18] ..... [ESP+18]出现正确的passwor 0137:0040D084 ADD ESP,04 0137:0040D087 MOVZX AX BYTE PTR [EDX] 0137:0040D08B MOV [ESP+0A],AX ..... 输入password的第一个数字1放入 [ESP+0A] 0137:0040D090 INC EDX ..... 将指标指向输入password第二个数 字2 0137:0040D091 XOR EAX,EAX ..... EAX清成0 0137:0040D093 MOV AL,[ESP+0A] 0137:0040D091 TEST BYTE PTR [EAX+0043CC39],04 0137:0040D09E JZ 0040D0C5 0137:0040D0C5 INC ESI ..... 指标指向正确password第二个数字 0137:0040D0C6 XOR EAX,EAX ..... EAX清成0 0137:0040D0C8 MOVZX BX BYTE PTR [ESI-01] 0137:0040D0CD MOV AL,BL ..... 正确password的第一个数字放入AX 0137:0040D0CF TEST BYTE PTR [EAX+0043CC39],04 0137:0040D0D6 JZ 0040D0EF 0137:0040D0EF CMP BX,[ESP+0A] ..... 就是这里了! 0137:0040D0F4 JNZ 0040D110 ..... 比对密码,不相同则JUMP 0137:0040D0F6 CMP BYTE PTR [ESP+0A],00 0137:0040D0F4 JNZ 0040D110 ..... 确定是否是比对完毕,若不是则继续 下一位数字的比对 如果我们下"A 0040D0F4"後ENTER,输入两次"NOP",将"JNZ 0040D110"改成"NOP",再回到注册画面,就会出现完成注册的讯息,现在可以100%确定[ESP+0A]中的是正确的密码. (6) 重新打开注册画面,填入6742214742728776356666147347完成注册. <四> 结论 这个软体要找正确的密码到并不难,但如果能追到比对密码处会更好,如果能下些功夫研究一下比对密码的程式,会让你对组合语言有些认识,起码我是这样.此外这个软体的密码可能会因安装的机器不同而不同,所以你得把你自己的密码找出来.最後是别以为你真能完全匿名,很MAIL SERVER都有防备的.