• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Codejie's C++ Space

            Using C++

            LingosHook:近況--猶如解密一般


                啥也不說,先看看一段來自LingosHook的代碼先~

            int CHtmlDictParser::HtmlDataType1Proc(const std::wstring &html, const std::wstring &dictid, const TinyHtmlParser::CDocumentObject &doc, const TinyHtmlParser::CElementObject *dict, const TinyHtmlParser::CElementObject *pdiv, const HtmlDictParser::TDictResult &res, TResultMap &result) const
            {
                
            const TinyHtmlParser::CElementObject *= pdiv->child;
                
            if(p == NULL)
                    
            return -1;
                p 
            = p->child;

                
            while(p != NULL)
                
            {
                    
            if(p->child == NULL || p->child->child == NULL || p->child->child->sibling == NULL
                        
            || p->child->child->sibling->child == NULL || p->child->child->sibling->child->child == NULL
                        
            || p->child->child->sibling->child->child->child == NULL)
                        
            return 0;
                    std::wstring word 
            = p->child->child->sibling->child->child->child->value;
                    
            if(PushResult(word, res, result) != 0)
                        
            return -1;

                    
            if(p->sibling == NULL || p->sibling->sibling == NULL)
                        
            break;
                    p 
            = p->sibling->sibling;
                }

                
            return 0;
            }

               此函數用于分解出下面HTML數據中的單詞,只是其中那段if語句是否讓你感到眼暈?

             <id="dict_body_7AB175CC5F622A44A0DECE976AF22A16">
                      
            <div id="dict_gls_7AB175CC5F622A44A0DECE976AF22A16">
                        
            <div style="MARGIN: 5px 0px">
                          
            <div style="WIDTH: 100%">
                            
            <div style="FLOAT: left; LINE-HEIGHT: normal">
                              
            <img height="11" src=
                              "file:///C:/Program%20Files/Lingoes/Translator2.7/dict/image/entry_p.png"

                              width
            ="10" align="absmiddle" border="0">
                            
            </div>
                            
            <div style="OVERFLOW-X: hidden; WIDTH: 100%">
                              
            <div style=
                              "MARGIN: 0px 0px 5px; COLOR: #808080; LINE-HEIGHT: normal"
            >
                                
            <span style=
                                "FONT-SIZE: 10.5pt; COLOR: #000000; LINE-HEIGHT: normal"
            ><b>
                                AC
            </b></span>
                              
            </div>
                              
            <div style="MARGIN: 0px 0px 5px">
                                
            <div style="MARGIN: 4px 0px">
                                  
            <div style="MARGIN: 4px 0px">
                                    公元前
                                  
            </div>
                                
            </div>
                                
            <div style="MARGIN: 4px 0px">
                                  
            <div style="MARGIN: 4px 0px">
                                    
            <font color="navy">[計]</font> 存取周期,
                                    累加器, 聲耦合器, 交流, 應用控制,
                                    自動檢查, 自動計算機
                                  
            </div>
                                
            </div>
                                
            <div style="MARGIN: 4px 0px">
                                  
            <div style="MARGIN: 4px 0px">
                                    
            <font color="navy">[化]</font> 交流; 交變電流
                                  
            </div>
                                
            </div>
                              
            </div>
                            
            </div>
                          
            </div>
                        
            </div>
                        
            <div style=
                        "PADDING-RIGHT: 0px; BORDER-TOP: #c7d4dc 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 5px"
            >
                        
            </div>
                        
            <div style="MARGIN: 5px 0px">
                          
            <div style="WIDTH: 100%">
                            
            <div style="FLOAT: left; LINE-HEIGHT: normal">
                              
            <img height="11" src=
                              "file:///C:/Program%20Files/Lingoes/Translator2.7/dict/image/entry_p.png"

                              width
            ="10" align="absmiddle" border="0">
                            
            </div>
                            
            <div style="OVERFLOW-X: hidden; WIDTH: 100%">
                              
            <div style=
                              "MARGIN: 0px 0px 5px; COLOR: #808080; LINE-HEIGHT: normal"
            >
                                
            <span style=
                                "FONT-SIZE: 10.5pt; COLOR: #000000; LINE-HEIGHT: normal"
            ><b>
                                Ac.
            </b></span>
                              
            </div>
                              
            <div style="MARGIN: 0px 0px 5px">
                                
            <div style="MARGIN: 4px 0px">
                                  
            <div style="MARGIN: 4px 0px">
                                    
            <font color="navy">[醫]</font> 錒(89號元素)
                                  
            </div>
                                
            </div>
                              
            </div>
                            
            </div>
                          
            </div>
                        
            </div>
                      
            </div>
                    
            </div>

                Lingoes的結果數據看似很有規律,實際內部有非常微小的差異,為提高LingosHook識別能力,不得不需要非常仔細地分析這些數據,以找出其規律。這個分析過程,讓我想起去年破解WOW的MPQ文件時的經歷,痛苦啊,有興趣,可查看這里的貼圖~
                目前測試的詞典多數可以歸為兩類,以分別寫了相應的函數進行處理,根據“解密”結果優化HTML處理過程,盡量做到快速和通用,再檢測幾個詞典結果,過兩天應該可以更新了。唉,累死我了,還好這幾天工作上沒有“情況”發生,“解密”是需要消耗大把時間的~

            posted on 2010-08-03 17:13 codejie 閱讀(533) 評論(2)  編輯 收藏 引用 所屬分類: C++輪子精神LingosHook

            評論

            # re: LingosHook:近況--猶如解密一般 2010-10-30 20:14 Jailrock

            你那段while-if語句段應該是遍歷搜索XML文檔的吧?  回復  更多評論   

            # re: LingosHook:近況--猶如解密一般[未登錄] 2010-10-31 11:40 codejie

            @Jailrock
            while是遍歷,if是定位。這段代碼讓人暈菜的就是這個if...  回復  更多評論   

            公告

            Using C++

            導航

            統計

            留言簿(73)

            隨筆分類(513)

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久99免费视频| 热99RE久久精品这里都是精品免费| 婷婷久久五月天| 亚洲va中文字幕无码久久不卡| 国内精品久久久人妻中文字幕| 久久99精品国产一区二区三区| 久久九九免费高清视频| 亚洲精品乱码久久久久久久久久久久 | 日本欧美国产精品第一页久久| 精品国产乱码久久久久久人妻| 天天久久狠狠色综合| 久久精品国产2020| 久久精品无码一区二区日韩AV| 青草国产精品久久久久久| 久久精品成人一区二区三区| 浪潮AV色综合久久天堂| 伊人久久大香线蕉综合5g| 国产成人香蕉久久久久| 久久精品国产亚洲AV无码麻豆| 亚洲午夜精品久久久久久app| 伊人久久免费视频| 久久精品国产亚洲AV香蕉| 国产成人精品综合久久久| 亚洲欧美一区二区三区久久| 国产精品久久久久乳精品爆| 久久免费小视频| 狠狠狠色丁香婷婷综合久久五月| 无码人妻少妇久久中文字幕蜜桃 | 久久91这里精品国产2020| 久久国产亚洲高清观看| 久久久久久久综合狠狠综合| 久久国产午夜精品一区二区三区| 热久久国产精品| 伊人久久大香线蕉精品| 99久久精品免费观看国产| 久久综合九色综合久99| 欧美亚洲国产精品久久蜜芽| 色综合久久88色综合天天| 久久成人精品视频| 91超碰碰碰碰久久久久久综合| 久久av免费天堂小草播放|