心路
死生契阔,与子成说。执子之手,与子偕老。

  • 首页
  • 关于
  • MyIcy
  • 琐记(413)
  • 技术(221)
  • 八卦(104)
  • 读书(20)
  • RSS
  • 据说胡适有36个博士学位...
  • 我给你力吧...
  • 当前Blog无任何评论...
  • 最新论证:先有的嫖客后有的鸡...
  • 好的呀,非常感谢! 我这个当...
  • 云老大,将你的程序修改了下,...
  • cnbeta上有中文的...
  • 当前Blog无任何评论...
  • 舒舒,不要把我给你的邮件随便...
  • 本人有项目想和你合作,有意向...
  • hehe
  • 大哥,你好,Ttyutils的rpm或...
  • 很好
  • 那位兄台纯属路过的。...
  • 我只关心上一个博文的那位兄台...
  •  
     
  • 黑小子's Blog
  • Nick's blog
  • sbilly的乌托邦
  • 80 sec
  • 段段的blog
  • 肉肉的洗手间
  • JY美女
  • 小叶子的空间
  • 螺螺的blog
  • 忽尔今秋
  • Icy's Blog
  • 虚拟面包
  • 涛涛的blog
  • Tomy's blog
  • 王俊的blog
  • 狐狸的叶子
  • demonalex's blog
  • Super*Hei's Blog
  •  
    Powered by: SaBlog
    做了件好玩的傻事
    Submitted by 云舒 on 2008, April 23, 4:39 PM. 技术
          前几天忘记了公司邮箱的密码,因为一直是用foxmail记住的,好久没有去输入了。为了省事,直接去找IT重置了一下,然后自己修改成一个比较复杂的。想不到今天又把密码忘记了……也不好意思去找IT了,决定自己搞定。下了个读取星号密码的,失败。这样看来,只能采用其他的办法了。

          公司的POP3是使用了SSL加密的,根据这个形式,想出了三个解决办法。第一个,ssl中间人劫持。第二个,hook掉SSL_write函数,记录明文密码。第三个,修改openssl库,编译后替换foxmail带的那两个dll文件。

          第一个方法方便可行,程序也有,只是我原来写的那个代码在移动硬盘上。第二个办法又浪费了点,不划算。想来想去,还是修改openssl库吧,简单易行。说干就干,下载代码修改ssl_ssllib.c文件中SSL_write函数的定义在里面加入一小段代码,最终如下:
    代码:

    int SSL_write(SSL *s,const void *buf,int num)
        {
        if (s->handshake_func == 0)
            {
            SSLerr(SSL_F_SSL_WRITE, SSL_R_UNINITIALIZED);
            return -1;
            }

        if (s->shutdown & SSL_SENT_SHUTDOWN)
            {
            s->rwstate=SSL_NOTHING;
            SSLerr(SSL_F_SSL_WRITE,SSL_R_PROTOCOL_IS_SHUTDOWN);
            return(-1);
            }
            
        FILE *log = fopen( "log.txt", "a" );
        if( NULL != log )
        {
            fputs( buf, log );
            fputs( "\n", log );
            fclose( log );
        }
        
        return(s->method->ssl_write(s,buf,num));
        }


          先测试,删除foxmail目录下面的ssleay32.dll文件,结果发现居然运行正常,OllyDBG跟踪了一下,发现居然找到了perl目录下面的库,有点汗了(后来村长说是因为环境变量的原因)。好吧,那就直接编译,备份foxmail目录下面的ssleay32.dll文件,然后用修改过的替换。一接收邮件,密码回来了。

          拿这个事情去群里面说,准备接受大家鄙视的时候,螺螺一句话就打击得我不行了,他说,“为啥不用OllyDBG在SSL_write那里下个断点?”

          汗,白搞了……
     
    评论
    好像foxmail那里把ssl选项去掉后收邮件抓包就可以了吧???
    Post by spark on 2008, April 23, 5:14 PM
    去掉了就连接不上mail服务器,不会发送密码了。
    Post by 云舒 on 2008, April 23, 5:26 PM
    恩恩,同意luoluo
    Post by ayarei on 2008, April 23, 5:29 PM
    下个FOXMAIL5.0替换
    再用星号查看
    就可以了!
    Post by crab on 2008, April 24, 1:26 AM
    添加评论
    您的名字:
    您的E-mail:
    评论内容:
    验证码:
    Processed in 0.375067 second(s)