自有演算法
1. 華為手機運動健康的計步數據,和微信運動的數據不一樣嗎
在微信運動界面,確認數據來源是否設置為我的手機。其他數據可能會導致微信運動的計步步教與華為運動健康不同,屬於正常現象。
如當天進行了軟體版本升級,微信運動的步數不會進行更新(除非升級後運動的步數超過當天升級前運動的步數),升級後第二天會恢復正常。
華為運動健康是華為定製應用,加入了華為自有的校準演算法,會去除異常數據。微信運動是通過安卓標准通道,按照特定的規則進行數據融合後輸出給用戶。如果手機在記步過程中重啟,由於手機會被重置,導致微信不計步或少記步的現象,與華為運動健康計步不一致,
手機重啟後,可能微信沒有自動啟動導致記步數少,可以進入手機管家〉自啟管理中,打開微信後的開關,設置微信允許自動啟動。
2. 華為手機的運動健康和微信運動為什麼不同步
在微信運動界面,確認數據來源是否設置為我的手機。其他數據可能會導致微信運動的計步步教與華為運動健康不同,屬於正常現象。
如當天進行了軟體版本升級,微信運動的步數不會進行更新(除非升級後運動的步數超過當天升級前運動的步數),升級後第二天會恢復正常。
華為運動健康是華為定製應用,加入了華為自有的校準演算法,會去除異常數據。微信運動是通過安卓標准通道,按照特定的規則進行數據融合後輸出給用戶。如果手機在記步過程中重啟,由於手機會被重置,導致微信不計步或少記步的現象,與華為運動健康計步不一致,
手機重啟後,可能微信沒有自動啟動導致記步數少,可以進入手機管家〉自啟管理中,打開微信後的開關,設置微信允許自動啟動。
3. 華為手機步數與微信步數不一致
摘要 1、請檢查您的「微信運動 > 更多 > 設置 > 記錄運動數據 > 我的數據來源」是否設置為「我的手機」,如果是其他數據,可能也會導致微信運動的計步步數與華為運動健康不同,屬正常現象。
4. 古人是怎樣傳遞信息的
一個是信件,由郵差來發放,騎馬到每個驛站,再換馬,最後把信送到
還有就是飛鴿傳書,就是用信鴿,將信綁在信鴿腿上,再放飛,信鴿就會回到原來的地方,往哪寫信就用哪個地方帶來的信鴿
還有些比較不正規的就是傳言,說書等等,人們相互傳言將信息傳播
或者說書的先生將某些事編成書詞,用說書的方式唱出來,也算是信息傳播.古代:
我國是世界上最早建立有組織的傳遞信息系統的國家之一。早在三千多年前的商代,信息傳遞就已見諸記載。
乘馬傳遞曰驛,驛傳是早期有組織的通信方式。位於嘉峪關火車站廣場的「驛使」雕塑,它取材於嘉峪關魏晉壁畫墓,驛使手舉簡牘文書,驛馬四足騰空,速度飛快。此磚壁畫圖於一九八二年被中華全國集郵聯合會第一次代表大會作為小型章郵票主題圖案使用,由此看出嘉峪關是中國信息文化的發源地之一。
秦漢時期,形成了一整套驛傳制度。特別是漢代,將所傳遞文書分出等級,不同等級的文書要由專人、專馬按規定次序、時間傳遞。收發這些文書都要登記,註明時間,以明責任。
隋唐時期,驛傳事業得到空前發展。唐代的官郵交通線以京城長安為中心,向四方輻射,直達邊境地區,大致30里設一驛站。據《大唐六典》記載,最盛時全國有1639個驛站,專門從事驛務的人員共二萬多人,其中驛兵一萬七千人。郵驛分為陸驛、水驛、水路兼並三種,各驛站設有驛舍,配有驛馬、驛驢、驛船和驛田。
唐代對郵驛的行程也有明文規定,陸驛快馬一天走6驛即180里,再快要日行300里,最快要求日馳500里;步行人員日行50里;逆水行船時,河行40里,江行50里,其它60里;順水時一律規定100到150里。詩人岑參在《初過隴山途中呈字文判官》一詩中寫到「一驛過一驛,驛騎如星流;平明發咸陽,幕及隴山頭」。在這里他把驛騎比做流星。天寶十四載十一月九日,安祿山在范陽起兵叛亂。當時唐玄宗正在華清宮,兩地相隔三千里,6日之內唐玄宗就知道了這一消息,傳遞速度達到每天500里。由此可見,唐朝郵驛通信的組織和速度已經達到很高的水平。
宋代將所有的公文和書信的機構總稱為「遞」,並出現了「急遞鋪」。急遞的驛騎馬領上系有銅鈴,在道上賓士時,白天鳴鈴,夜間舉火,撞死人不負責。鋪鋪換馬,數鋪換人,風雨無阻,晝夜兼程。南宋初年抗金將領岳飛被宋高宗以十二道金牌從前線強迫召回臨安,這類金牌就是急遞鋪傳遞的金字牌,含有十萬火急之意。
古代信息傳遞的方式:
1.用候鳥,特別是鴿,雁等作傳輸工具
2.作內餡的方式,如藏在魚肚,餅類,包子等
3.以特殊聲音,如鍾聲,鼓聲,鞭炮聲等
4.以燈光,火光,如孔明燈.烽火台等
5.還有其他記號,擺設等,如誘敵的記號
另外還有鍾鼓、煙火、鴿子、旗語、狼煙等方式傳遞信息
5. 怎麼華為運動健康和微信運動數據不一致
在微信運動界面,確認數據來源是否設置為我的手機。其他數據可能會導致微信運動的計步步教與華為運動健康不同,屬於正常現象。
如當天進行了軟體版本升級,微信運動的步數不會進行更新(除非升級後運動的步數超過當天升級前運動的步數),升級後第二天會恢復正常。
華為運動健康是華為定製應用,加入了華為自有的校準演算法,會去除異常數據。微信運動是通過安卓標准通道,按照特定的規則進行數據融合後輸出給用戶。如果手機在記步過程中重啟,由於手機會被重置,導致微信不計步或少記步的現象,與華為運動健康計步不一致,
手機重啟後,可能微信沒有自動啟動導致記步數少,可以進入手機管家〉自啟管理中,打開微信後的開關,設置微信允許自動啟動。
6. 如果說兩個人的緣分自有一套科學精密的演算法,那麼,是不是只要改變自己的數據,就能得到想要的愛情
命里有時終須有命里無時莫強求。改變自己的命數,也要承擔後果,還不如順其自然
7. bat蝙蝠聊天安全嗎
摘要 蝙蝠聊天是安全的,「蝙蝠」滿足了普通大眾對於加密聊天的需求。該軟體採用了一人一協議,一人一密鑰的非對稱加密方式,私鑰僅存放用戶手機端可手動更換。協議加密的方式是基於橢圓曲線演算法和自有演算法進行密鑰協商,並通過ECC加密演算法對消息和文件進行加解密。
8. 易語言反破解教程說信息框用自定義窗口就是自己新建窗口,請問新建窗口怎麼做到程序等待或者系統等待效果
4.隨機驗證
隨機驗證很重要,例如你的一處驗證是一直存在的,奸人就很容易地下斷點跟蹤了。因此在軟體啟動時進行一次正常驗證外,其他情況下的驗證最好是隨機的,用30分之一或50分之一的機會進行驗證,這樣奸人會不停地試你的軟體在哪一處進行了驗證,因此破解的時間會相當地長。
加密第14定理:足夠多的隨機驗證足以讓破解者累死。
隨機驗證包括隨機進入不同的驗證子程序。
或隨機中的最大數大一些,只有30分之一的機會驗證。
或在窗口中放上一些顏色與底圖一樣的圖片框,這樣奸人不一定會點擊這里,但用戶萬一點中了,就會觸發驗證。
我們假設所有軟體都能被破解,包括易語言在內,那麼如果他破解的速度跟不上你發布新軟體的速度,那麼他永遠在破最新版而累死。或者說他破解的時間比你寫一個軟體的代價大,這時還不如他直接寫這個軟體來得合算。
反破解的任務之一就是讓奸人累死,或浪費他的生命。
下面的辦法也可以使用:你可以在讀到待驗證的注冊碼、公鑰、注冊文件後,通過定義10000個數組,存入上述同樣的內容以備以後進行驗證,這最多浪費一些內存。驗證時隨機使用其中的一個進行驗證,由於奸人不知你用的是數組中的哪一個進行的比對,而且是隨機的,每次驗證的值都不一樣,不讓奸人吐血才怪呢。
計次循環首(10000,計次)
數組[計次] = 「123456」 』 復制一萬個公開注冊碼或公鑰,破解者知道也無所謂。
計次循環尾
數組[取隨機數(1,10000)]
你不要立刻檢查注冊碼,10000份拷貝你只要以後隨機找一份用就行了,破解的人不知道你正在用的是那一個,同時你可以事先編好且運行時不斷使用一些假的讀取注冊碼數組的調用干擾破解者。這種方法對程序的性能影響微不足到,只是浪費一點內存。因為Debug對內存下斷點的局限,這種情況他要下斷點,累死的就是破解的人了。
5.不同許可權驗證
在啟動時進行一次驗證是非常必要的,這樣讓奸人知道確實是驗證了,以讓他心理放鬆警惕,而這次的驗證只是一部分驗證,並沒有完全驗證。
還有的建議在啟動時將注冊信息讀入後不要進行驗證,保不定在哪裡進行驗證,個人認為這樣讓破解者提高了警惕性,會認為軟體作者很有經驗。麻痹敵人也很重要呀。
例如,在啟動時驗證通過一次,驗證級別加強一級,然後再在其他的地方再進行驗證就可以了。
下面代碼是確認了一個級別
計次循環首(到數值(驗證1),)
已注冊 = 1
計次循環尾()
……
……
在另一個觸發子程序中再通過這個級別再驗證:
計次循環首(已注冊)
計次循環首(到數值(驗證2),)
已注冊 = 2
跳出循環()
計次循環尾()
跳出循環()
計次循環尾()
在其他觸發子程序中再通過這個級別再驗證:
計次循環首(已注冊)
計次循環首(到數值(驗證3),)
已注冊 =3
跳出循環()
計次循環尾()
跳出循環()
計次循環尾()
有時也可以將級別降一降,怎麼降,當然是不考慮級別直接驗證了:
6.忽悠型的GHOFFICE過濾詞語驗證代碼
前面已講過花指令的原理,在程序中人為地再放一些GHOFFICE過濾詞語代碼以忽悠奸人也是一個好辦法。GHOFFICE過濾詞語代碼就是一些假的驗證代碼,基本上是明文的,這樣的代碼上百上千,足以讓奸人累死。
其實對付那些「根據跳轉指令的爆破」高手來說,一個辦法就夠他們頭疼的了,就是你在程序中不明顯加入與判斷是否正版有關的語句,也不做任何提示,以免讓他們順藤摸瓜,而是在判斷為盜版後,跳轉到另一個看似很合理的分支,而那個分支和正版的分支代碼差不多,只是在計算公式或其它演算法上稍動一下,使其運算結果不正確,這樣,他們就在機器碼級別上就分不清哪個是對的,哪個是錯的了,即使他們認為破解成功,其實運行時,得的結果錯誤百出,他們就沒興趣了,呵呵,算損的吧!!!
加密第15定理:大量添加GHOFFICE過濾詞語代碼雖然是無奈之舉,但很管用。
作業1:製作一個常量****器
要求:製作一個常量代碼自動生成器。可隨機生成成百上千個易語言源代碼形式,可直接拷貝到易語言中成為常量。變數也可以這樣製作。
寫好這樣一個程序後,就可以自動生成GHOFFICE過濾詞語代碼,然後復制,粘貼到易語言的常量表中即可。如下圖所示:
變數也可以這樣生成,不過生成的變數可以任意拷貝為全局變數,或程序集變數,或局部變數。製作時的名稱可以為中文名稱,直接編譯後不會在EXE文件中找到同名的中文名稱。因此您可以放心地將這些名稱定義為:「GHOFFICE過濾詞語常量1」、「GHOFFICE過濾詞語變數1」等等以示與正常代碼進行區別。
作業2:製作一個代碼迷亂器
本次作業性質同上,也是自動生成易語言的一些無用GHOFFICE過濾詞語代碼,以迷亂奸人的破解,讓他找到的全是GHOFFICE過濾詞語代碼,從而大大延長了破解時間。
通過直接拷貝編輯框中的內容,粘貼到您的代碼中,可自動完成任務,如下圖所示:
上圖所生成的是一些明文的加密方法的GHOFFICE過濾詞語代碼,讓奸人去研究這些GHOFFICE過濾詞語吧。
上述子程序名稱最好也有時調用一下,反正不會真正產生作用的,用多線程調用最好。
或者您平時注意多收集一些別人用於加密時的子程序,拷貝到一個易語言程序中,保存,這樣的代碼作為GHOFFICE過濾詞語代碼放在你有用的程序中,雖然增加了一些程序的體積,但安全性是大大提高了。並且基本上沒有犧牲軟體性能與穩定性。
7.偽驗證技術
還是先舉一個例子說明吧,易表軟體在10.0版本前已發現有大量的注冊機存在,於是易表作者其後改變了加密方式,易表10.0推出後還是出現了注冊機,並且這種注冊機注冊過的軟體可以使用。於是有些用戶用注冊機取得的注冊碼使用了,過了一段時間,當盜版用戶將重要數據存入易表後,突然有一天資料庫被鎖定了,於是只好注冊易表,並且讓易表作者為資料庫解鎖。
從這里可以基本上判定易表新版本採用了偽驗證技術,即在較為明顯的地方提供了一級驗證,這種驗證方式沒有經過太強的加密,而二級驗證在一定的條件下才觸發,而這個條件是檢查到了用戶輸入了重要的數據,或大量的數據,或使用次數較多。
基本原理是注冊文件由前後兩個注冊碼拼接而成。一般情況下只進行第一個注冊碼的驗證,而當條件成熟時進行第二個注冊碼驗證。
這是一種雙贏的策略,易表作者即收到了注冊費,付費的人還會道歉,並且感謝易表作者。哈哈,大家要學習這招哦。
但本辦法對於資料庫應用及數據量大時檢查最好,而對於一些沒有生成數據的用戶無效。
發布軟體的時候發布自己編寫的注冊機,弄個假破解版,那麼想破解的就可能不來了,即使有真的破解,誰會有自己給自己寫假破解快啊!可能假破解版中只破解一半,等用戶使用了,有數據了再鎖定,讓他們注冊後再給解鎖,付了錢還要謝謝你,哈哈,損招,但有用!
加密第16定理:偽驗證可以迷惑一般破解者,甚至自己發布一個偽注冊機。
8.定時驗證、延時驗證、客戶數據集累驗證
過一段時間後再驗證,如你在2005年1月發布一個軟體,那麼就內定2005年6月後觸發驗證機會。
或您的軟體是一個資料庫產品,那麼您可以在程序中設置如果資料庫大於5MB時就進行驗證,並且最好您能確定這些數據是不重復的,刻意加入的。
如易表設置了偽驗證,這時市場上出現了新的注冊機,當用戶用這個注冊機後,提示是注冊成功了,但當用戶輸入重要數據後的某個日子,突然打不開資料庫了,用戶很著急,因為以為是破解成功了,所以將重要的資料輸入了,只能拿錢向易表作者進行注冊了。而且還千恩萬謝,後悔自己不該用破解。哈哈,一舉兩得呀。
這個方法對於資料庫應用軟體來說是絕好的辦法。
作業:製作一個演算法程序放在你的資料庫軟體中,這個子程序可以統計你的資料庫軟體使用時,用戶輸入的是否是拷貝的東西,還是正常的數據。當統計到1000時觸發驗證。方法思路為:可以通過查看用戶有沒有使用復制與粘貼快捷鍵,或資料進行排序,如果有大量重復的,就說明是奸人在拷貝數據破解,否則是一個資料一個資料的輸入的,說明是正常使用的重要資料,這時進行對比就好了。
本方法對有資料的破解使用者有極好的控製作用,通過第6條的偽驗證技術與本技術結合,那麼就可以知道是不是正版用戶,並且可以鎖定資料庫,等他注冊後再給他解鎖。
加密第17定理:加密的結果應該是雙贏,偽驗證是一個上策。
9.驗證與專業知識相結合技術
將驗證與專業知識相結合,讓奸人必須學習專業知識後才能真正去破解,這樣所花的功夫比自己寫一個軟體的代價還要大,而有的專業知識不是專家是不知道的,因此是一個較好的加密方法。
前述中採用了「到數值(驗證1())」這樣的代碼返回的是0或1兩者之間的一個數,可以用乘法進行混合計算,如:
音量 = 播放位置X到數值(驗證1())
當驗證正確時返回的是1,這時的結果是正確的,否則返回0,這時的結果為0,是錯誤的。
這樣的代碼可以混合到您的專業知識中,如:算命軟體可將天乾地支、生辰八字中的某個地方進行此類計算,計算類軟體可以將某種特殊的計算過程如此結合計算,繪圖類軟體可將繪圖中的演算法部分加入此類計算,音響設計類、機床設計軟體……
加密第18定理:你知道的專業知識,破解者不一定了解哦。讓專業知識與驗證相結合吧。
10.偽裝,用易語言寫自有支持庫
大家可以將DLL文件的擴展名改為易語言的支持庫文件FNE擴展名,這樣進行非獨立編譯後,與其他FNE文件混合在一起,甚至您可以用易語言寫一個支持庫,將其中一部分作為驗證部分。
易語言的支持庫文件FNE文件其實就是一個DLL文件,只不過擴展名改變了而已,用易語言寫支持庫的方法金眼睛已發過一篇貼子,進行過說明,請大家在易語言論壇上搜索金眼睛的貼子就可以找到了。
作業:找到金眼睛關於用易語言寫支持庫的貼子,並且自己寫一個支持庫。
11.絕妙的暗樁設置
應該想到的用代碼實現的暗樁前面都講了不少,下面是一些特別的暗樁供奸人品味的。
大家可以在一些不起眼的地方再放一些暗樁,如:在窗口最小化事件中隨機驗證,如在某個組件滑鼠被移動事件中驗證,
有時需要將數據完整性驗證放在更高一級的驗證中,不要一上來就檢查文件是否被更改。
同一驗證可以使用多次,這樣奸人認為你已經驗證過了,沒有必要會再驗證一次,而相反這時又產生了驗證,讓奸人防不勝防。如啟動時就立即檢查程序完整性,如果發現被更改,那就立即退出程序,而在一些子程序中也隨機放這樣的驗證。
更多的暗樁大家自己設計最好。
加密第19定理:加密重要的是暗樁的設置,破解不完全就是一個無效破解。
12.發布不完整版本
有的軟體作者在發布共享軟體時,放在外面的是不完整版本,將更多的數據資料在注冊後提供。這樣做也可以,只是麻煩一些而已。如有的圖形製作軟體,將圖片資源另外打包,用戶注冊後再給完全版的圖片。
也有的將DLL文件中的驗證部分作了空處理,而在注冊後提供真正的注冊DLL文件及注冊碼。還有的直接將KEY文件放在了DLL文件中另外提供。
加密第20定理:不要發布完整版本,以靜制動。
13.程序、數據結合加密技術
把程序運行所必需要的資源放到一個資料庫文件中,給這個資料庫設密碼,密碼是主程序的數據摘要變換後的結果。程序運行是先驗證有沒有注冊,如果已經注冊,就對運行程序本身(取執行文件名())取數據摘要,用自己設計的演算法多次變換後形成一個字串,用該字串作為資料庫的密碼打開資料庫文件。如果打開資料庫失敗,就說明主程序被人修改了,終止程序運行即可。(不終止也沒戲,程序找不到運行所需的資源。)
另外設計一個程序,用同樣的演算法算出資料庫密碼,然後給資料庫加密即可。
密碼形成演算法建議使用大數支持庫。但如果是匯編高手用匯編寫注冊機的話,會直接將支持庫的所有反匯編碼抄進去就可以了,問題是他們有沒有時間搞。
14.自定義演算法
前面講過採用RSA與數值計算支持庫交叉計算的辦法,這就是一種自有的演算法,如果能用上數值計算支持庫中的矩陣、傅麗葉變換等高級功能就更好了。
多重RSA交叉打亂:大家也可以多用一些RSA密鑰,如用5個,10個都無所謂,重要的是將這些注冊碼都打亂,讓奸人哭死。打亂的方法就是你自己獨創的方法了。
更多的自有演算法就要靠大家自己去研究了。祝大家好運。
加密第21定理:加密不反對古怪和變態的方法,鼓勵哦。
15.加密框圖
下面給出一個加密的設計框圖,大家可以根據自己的實際情況改變加密的策略:
圖中主程序外圍進行了花指令編譯,並且用加普通殼進行保護。脫殼了也無所謂,因為設置了暗樁,隨機檢查。
圖中表示主程序運行後,首先進行了常規的注冊碼第一次驗證,找有沒有注冊文件。如果這個被破解,注冊碼應該是一個短的RSA,而真正的注冊碼是三個RSA的疊加。會生成偽注冊機也無所謂。
主程序中用暗樁的形式對窗口標題、版權信息進行驗證,這是考慮到如果一啟動就驗證這些很容易被奸人看出來從而會跳過去。因此用一些隨機,或分級,或條件法取得不固定的驗證。
主程序中用暗樁的方式對加殼後主程序的完整性進行校驗,這個也不要放在常規的驗證中,否則很容易被跳過去。可以查文件長度,MD5或CRC32都可以上。
主程序中用暗樁的方式加入了反調試模塊。
主程序中布滿GHOFFICE過濾詞語驗證代碼。並且源代碼有備注,不會搞錯的。
主程序在某個條件下隨機進行第二級驗證,從注冊碼中取第二段數據,如果注冊碼長度不夠且取不到第二段數據,那麼就說明已使用了偽注冊機,將用戶的資料庫鎖定,等他付錢來注冊。
主程序在一個條件下再激活驗證,從注冊碼文件中取第三段數據,如果注冊碼長度不夠,且取不到第三段數據,那麼就說明已使用了偽注冊機,將用戶的資料庫鎖定,等他付錢來注冊。
編程中還注意將加密的字元串攪亂且分不同地方存放,用吳氏加密命令加密重要數據,也可加入數值計算支持庫的演算法,也可以加入一些懲罰手段,也可以再加入自己的一些演算法。
以下是一些人的編程體會摘錄,基本未改其中的內容,在此表示感謝!
附錄1加密已形成密碼學
我引用《應用密碼學》作者的話:
世界上有兩種密碼:一種是防止你的小妹妹看你的文件;另一種是防止奸人閱讀你的文件資料。
如果把一封信鎖在保險櫃中,把保險櫃藏在紐約的某個地方…,然後告訴你去看這封信。這並不是安全,而是隱藏。相反,如果把一封信鎖在保險櫃中,然後把保險櫃及其設計規范和許多同樣的保險櫃給你,以便你和世界上最好的開保險櫃的專家能夠研究鎖的裝置。而你還是無法打開保險櫃去讀這封信,這樣才是安全的。
意思是說,一個密碼系統的安全性只在於密鑰的保密性,而不在演算法的保密性。
對純數據的加密的確是這樣。對於你不願意讓他看到這些數據(數據的明文)的人,用可靠的加密演算法,只要破解者不知道被加密數據的密碼,他就不可解讀這些數據。
但是,軟體的加密不同於數據的加密,它只能是「隱藏」。不管你願意不願意讓他(合法用戶,或 Cracker)看見這些數據(軟體的明文),軟體最終總要在機器上運行,對機器,它就必須是明文。既然機器可以「看見」這些明文,那麼 Cracker,通過一些技術,也可以看到這些明文。
於是,從理論上,任何軟體加密技術都可以破解。只是破解的難度不同而已。有的要讓最高明的 Cracker 忙上幾個月,有的可能不費吹灰之力,就被破解了。
所以,反盜版的任務(技術上的反盜版,而非行政上的反盜版)就是增加 Cracker 的破解難度。讓他們花費在破解軟體上的成本,比他破解這個軟體的獲利還要高。這樣 Cracker 的破解變得毫無意義——誰會花比正版軟體更多的錢去買盜版軟體 ?
然而,要做到「難破解」,何嘗容易? Sony 曾宣稱的超強反盜版(Key 2 Audio音樂 CD反盜版),使用了很尖端的技術,然而最近卻被一枝記號筆破解了,成為人們的飯後笑料!
所以,很多看上去很好的技術,可能在 Cracker 面前的確不堪一擊。就像馬其諾防線一樣,Cracker 不從你的防線入手,而是「繞道」。這樣,讓你的反盜版技術在你做夢也想不到的地方被 Crack 了。
為什麼會這樣呢 ?歸根到底是因為軟體在機器上運行,並且軟體和機器是分離的——這一點是關鍵,如果軟體和硬體完全綁定,不能分離,是可以做到象 IDEA 之類幾乎不可破解的系統的。這將在後面談傳統軟體保護技術時詳細說明。
對我的這個解決方案,我不能保證Crack高手在幾天之內不能破解它,我只能說:「在這個軟體中,我盡量堵住了當前破解者普遍使用的方法以及「我想得到」的可能的缺口。」但是我相信,傾注了我三個月心血的反盜版軟體,決不是一個「玩具式」的反盜版軟體。
附錄2《如何用簡單方法防止破解》
北極異型
在Debug的手冊里可以看到Debug工具的局限:第一個局限是只能下4個內存區域的斷點,每個斷點不能控制超過兩個位元組,這樣內存斷點不能控制超過16個位元組的區域;第二個局限是對多線程只能同時跟蹤一個線程。
假設你的注冊部分有300行,你可以分成30個子程序調用或重復的func1(),func2()... func30()。將他們隨意放到程序的各個部分,一定不能放在一起(自己能找到就行了)。不要用Memcpy等常用系統調用拷貝注冊碼,盡可能自己寫,像Memcpy很好寫,性能差點無所謂。經過編譯後inline函數展開,注冊部分和其他代碼混在一起,他要寫出注冊機就像大海里撈針,在幾十萬甚至上百萬匯編代碼里找出有用的注冊部分。
利用Debug的第一個局限最重要的一點是:注冊碼也不要放在一起,假設你的注冊碼是12位,千萬不要用一個12位的數組放注冊碼,你可以在程序的不同位置定義12個全局字元變數,每個放一位,這樣注冊碼在內存就不連續了。最好再加密處理一下(簡單的字元異或就可以),驗證時再解密。也不要用連續內存保存驗證用到的變數,盡量將用到的驗證臨時變數分散定義在程序的不同處,再在驗證中,不斷轉移一些值到其他變數中,對付暴力和Loader會比較有效。
沒有必要用復雜的加密演算法,更容易成為追蹤的目標。只要你將注冊部分隱藏的足夠好,也沒有漏洞,你花1天寫的加密演算法,破解者可能會花100-1000倍的時間破解。大部分人都會放棄。
你將注冊做在一起,就像將你的財寶放在現代保險箱里,雖然非常堅固難以解密,對於開鎖高手兩分鍾就打開了。
而古代海盜用的方法是將財寶埋在海島上,這樣沒有藏寶圖,對所有高手和低手都只有一條路,拿一把鐵撬挖,可能要挖一生。程序有那麼多代碼,反編譯出來可能超過百萬行,你將注冊部分藏在裡面,藏的好就如同將財寶埋在海島里。那些所謂的Crackme只是給高手玩兒的現代保險箱而已,用原始的方法可以達到同樣效果。
9. 螢石演算法商店收費嗎
不收費。
螢石演算法開放平台,提供包含數據採集服務、數據標注服務、模型訓練服務、雲邊部署服務等一站式功能服務,全方位評估演算法模型,根據開發者提供的演算法訓練素材,自動生成相對應的演算法,支持通過雲端執行,也可以直接部署在設備端。
演算法商店實現了螢石自有演算法快速分享給C端用戶,但如何讓更多行業客戶加入進來,實現低成本快速演算法研發、維護與推廣,匯聚更多力量服務多樣化場景,成為重要的議題,開發者版本的「演算法商店」-螢石演算法開放平台便順勢而生。我們將開放演算法訓練服務與設備側動態演算法載入相結合,把開發者訓練好的演算法,下發到設備側或者雲端做執行,同時將設備產生的消息內容作為輸入,從而實現從訓練到執行的閉環。