• <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>

            Sheppard Y

            keep thinking keep coding.

            一次簡單的hack

            2016-07-12 日更新 
            此篇博客已經(jīng)遷移到新博客,并做行文檢查和優(yōu)化排版:
            http://blog.clawz.me/2014/05/15/14-a-easy-hack/

            一、背景
                 朋友公司有款老軟件,運(yùn)行在windows下,C/S架構(gòu)??蛻舳藶楹芫们巴獍_發(fā)的。這個客戶端為GUI界面。朋友想定時自動讓軟件做些事情。這個客戶端以前設(shè)計時沒有提供這種定時功能,只有每次執(zhí)行當(dāng)次的操作。朋友自己對軟件開發(fā)不熟,如是找到我。
            二、朋友給的解決方案
                 他表示做個按鍵腳本之類的,定時的去模擬在客戶端上的單次操作。
            三、我的解決方案
            (一)了解需求
                 這是C/S架構(gòu),之前是每次鼠標(biāo)點(diǎn)擊后,客戶端給服務(wù)器發(fā)送相應(yīng)的網(wǎng)絡(luò)包?,F(xiàn)在要做的是破解這個協(xié)議,然后自己寫程序定時發(fā)送對應(yīng)協(xié)議的網(wǎng)絡(luò)包即可。
            (二)解決方案
                 朋友的解決方案,對于擅長客戶端的人是可以的。但是我不怎么擅長,會花不少時間。
                 所以我選擇我自己更擅長的網(wǎng)絡(luò)編程。如上邊說的,先破解協(xié)議,然后想干啥就非常方便了。
            四、解決過程
            (一)破解協(xié)議
                 本想找個協(xié)議監(jiān)聽軟件,我來遠(yuǎn)程操作就行了,但是他們使用環(huán)境公網(wǎng)無法連入。如果我寫文檔讓他來按步驟走,對于非專業(yè)人士來說也挺費(fèi)事的。
                 隨后我想到他們的行業(yè)不那么互聯(lián)網(wǎng),他們聯(lián)系的外包素質(zhì)應(yīng)該不是那么高。估計也就是windows那套.net搞的,頂多也就java搞的。所以讓他把客戶端拷出外網(wǎng),我來反編譯試試。同時我去網(wǎng)上查下.net的反編效果,有網(wǎng)游表示沒有混效果的C#代碼反編出來跟源代碼基本沒啥區(qū)別,另外以前反編譯過java,反編得的代碼也跟原工程差不多。所以開始淡定的祈禱反編順利。
                 看了眼客戶端里的各文件,感覺到是C#,找了個dotPeek,反編譯出來相當(dāng)清晰。(這玩意的反編譯效果比以前反編譯flash的代碼還清晰,flah反編譯后的變量名基本編程local1之流了,這個C#反編出來變量名都是好的)
            (二)分析協(xié)議
                 C#代碼雖沒寫過,但是語法跟Java/C++非常像。分析起來不是很費(fèi)勁。
                 果然代碼寫的很windows的.net,客戶端直接連接的數(shù)據(jù)庫,然后在客戶單發(fā)起select之類的查詢語句。數(shù)據(jù)庫表和字段名基本是中文拼音首字母。
                 后來具體邏輯也懶得看,直接找到數(shù)據(jù)庫的配置,讓朋友在內(nèi)網(wǎng)裝個數(shù)據(jù)庫客戶端,連數(shù)據(jù)庫看表里數(shù)據(jù)了。讓他比對表里數(shù)據(jù)和客戶端軟件上顯示的數(shù)據(jù)對比,找出咱們要的哪幾個字段。
            (三)實(shí)現(xiàn)需求
                 這個是整個過程里最簡單的了。用了自己最喜歡的golang寫了個沒有GUI的程序,定時給他去數(shù)據(jù)庫查想要的數(shù)據(jù)。
            五、后記
                 整個過程的順利多虧給他們寫外包的公司用的C#,還沒有做代碼混淆之類的。

            posted on 2014-05-15 11:11 Sheppard Y 閱讀(945) 評論(0)  編輯 收藏 引用 所屬分類: 其他語言golang 、解決問題

            <2014年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計

            留言簿(1)

            隨筆分類(77)

            隨筆檔案(58)

            me

            基友

            同行

            業(yè)界前輩

            最新隨筆

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            男女久久久国产一区二区三区| 狠狠色综合网站久久久久久久| 国产亚洲精久久久久久无码AV| 久久无码人妻一区二区三区| 亚洲国产精品无码久久久蜜芽| 国产精品久久久香蕉| 久久这里只精品99re66| 中文精品99久久国产| 久久精品国产亚洲AV蜜臀色欲 | 久久午夜无码鲁丝片| 久久精品国产久精国产果冻传媒| 国产欧美久久久精品影院| 久久久亚洲欧洲日产国码是AV| 亚洲AV无码久久| 久久久久四虎国产精品| 99久久精品免费看国产| 日韩影院久久| 久久亚洲精品无码AV红樱桃| www久久久天天com| 久久九色综合九色99伊人| 四虎国产精品成人免费久久| 人妻无码中文久久久久专区| 久久免费小视频| 久久综合久久美利坚合众国| 粉嫩小泬无遮挡久久久久久| 99久久亚洲综合精品成人| 亚州日韩精品专区久久久| 亚洲午夜久久久久久噜噜噜| 香港aa三级久久三级| 欧美成人免费观看久久| 国产91色综合久久免费| 精品视频久久久久| 久久久久无码精品国产| 久久久91人妻无码精品蜜桃HD | 欧美噜噜久久久XXX| 久久精品国内一区二区三区| 伊人色综合九久久天天蜜桃| 久久99国产精品久久| 国内精品伊人久久久久777| 99久久无码一区人妻| 精品无码久久久久久午夜|