前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于shudepb的搜索

powerbuilder程序防止破解的辦法[1]_電腦知識網 首頁 嵌入式開發 游戲開發 移動開發 C編程 PB編程 Delphi編程 PHP編程 ASP編程 Web編程 Java編程 .NET編程 SQL語言 Oracle MySQL Sybase DB2 SQL Server 數據結構 操作系統 程序設計 熱點推薦: 您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文 powerbuilder程序防止破解的辦法[1] 2013-11-23 17:26:43 來源: PB編程   鑒於任何程序都運行cpu指令並可被反編譯成匯編碼也就是說理論上程序都是在裸奔所以天下無不可破之程序所以這裡討論的防止只是一定程度上的比如提高破解難度拖延時間讓破解者挫折感增加等等   一pb的現狀   pb從其pbd文件和dll文件格式的版本都為(pb尚不知曉還沒找到pb的程序)結構大致一樣所以pbkiller的作者只要還有時間他可以在一到三個月就做出最新的版本這個軟件比起shudepb來說更滅絕人性因為作者將其免費(最初好像也是要賣錢的無奈沒有采用shudepb那樣的網絡計算使得其被破解了從這一點看也蠻有意思)從而使得無數的好事者參與到破解的學習中因為我們寫的程序眾多高手只對商業價值高的軟件感興趣而且以它為職業糊口而初學者只是隨便找個軟件練手我朋友有個軟件被初學者拿來在裡面放了一些新文件其實根本沒破解到但是宣稱為破解版破解方法寫到輸入隨便的注冊碼提示出錯然後就得到真正的注冊碼了…如果不出錯多試幾次即可結果呢?程序根本就不在輸入注冊碼的地方判斷正確以否你說搞笑不搞笑pbkiller目前最高版只支持我看過代碼反編譯比較漂亮錯誤肯定存在但已經很完美了   錯誤只有對自己的項目反向時才會頭痛對破解者而言他們只想看注冊部分的算法   shudepb是商業版而且幾千塊一套這一定程度對pb有利畢竟初學者是不會去買一套沒用的工具來學習破解的而且demo版它限制代碼的長度非注冊版看不全代碼還真是厚道所以如果你不打算應對反編譯軟件的話那請把代碼寫在行之後(具體是不是行限制自己測試看看)這是最簡單辦法(pb以上)   至於pbd還原器原理是用pb本身的方法得到dw的反編譯代碼這個不叫做破解pbd中的dw本來就可以直接用而pb又有函數可以得到語法這就沒什麼新鮮的了pb的本身函數是不會提供功能給你能反編譯得到源碼的是絕對不可能的   在網上搜索破解pb程序的帖子通用的說法是程序沒法用OD來調而且pbvm裡也不好跟都是要用到pbkiller這個利器這在一定程度上說明對付菜鳥使得其反編譯成功的幾率小一些就能更好的保護自己辛苦勞動的軟件   目前幾種破解的方法   a 看程序算法和思路直接破解算法公布算法或者寫注冊機(如果代碼一覽無遺這個方法其實最簡單但是也有很多菜鳥看不懂pb代碼還在網上到處問可笑)   b 有人嘗試搜索pbd中的關鍵代碼用ue修改pbd中的字節(這個有難度做的人不多而且多數菜鳥只限於pbkiller會用而已對pbd文件不了解據我自己觀察對pbd有了解的話很多地方可以用ue直接改)比如修改一個字節可以把+變成把=變成<>有點恐怖   c 對於外部dll的調用有破解者提議寫假的dll來爆破之讓其返回一個已經注冊過的序號的依據如磁盤號有所謂的免狗程序應該屏蔽了對狗的調用或者搞了假的dll所以有必要多處驗證文件的md值只要他沒法修改pbd文件   以下是我猜想的一些做法是否切實可行待大家提意見一個軟件總是新出時容易被破解如果一年都沒被破解以後版本升級變來變去的破解也就更少了   我曉得一個朋友的軟件他一年連出十多個版本新版一出兩三天之內就被破他用的是delphi寫的他真可憐二進制編譯的軟件及asm之後也許更容易破解吧只要調試就搞定了就像pb一樣破解得非常快   pb程序其實也占幾個優勢多是商業軟件商業用戶還是有購買的習俗練手者不太容易找pb程序來破解因為共享軟件很多一般是你的用戶用得還可以又不想給錢就會有破解的念頭pb做的都是管理軟件破解高手對商業價值不高的軟件不感興趣再者pb程序難以調試知道的人都不想弄加之sql之類的顯得異常繁雜遠沒有破解一個二進制編譯的通用的使用量大的軟件有意思   代理商破解的可能性更大   二我的幾個構想的方法(都只針對增加難度讓靜態pbd反編譯難度加大讓pj者知難而退)   能采用machinecode方式的盡量用機器編譯單一exe文件用pbkiller和shudepb都無法看到代碼只能看到變量pj知難而退   我有幾個項目代碼超級大在當初用pb的時候就沒法編譯成機器碼現在的pb因為有string和blob的bug沒法編譯成機器碼而pb剛出來還沒測試不過代碼太多似乎沒法編譯成單一machinecode的exe那就只能用pcode   所以第二點就是欺騙在程序下放跟exe同名的假的pbd文件比如程序為mainexe放一個假的mainpbd給pj者去調試當然不一定是假的pbd你隨便找一個pbd用ue刪除一些二進制數字即可做的跟真的一樣   pbd可以放在在window系統目錄下或者path定義的任何地方或者之前文章也提到寫他幾十個注冊函數放在不同的pbd裡到底是哪一個只有你曉得搞死他librarylist也可以做做文章因為同名對象都依照lib順序來查找   程序啟動時抓一個時間啟動結束後抓一個時間如果中途有停頓是否可以判定在被調試我想你可以刪除他電腦上任何東西反正都是破壞別讓他悠閒的調試程序我作為一個寫代碼的人我認為有必要這麼做他要QJ你自然也允許你反抗某個殺毒軟件當年就這樣把破解版搞得吐血   注冊碼輸入時不做任何提示和判斷只是寫一個標志程序啟動時在title那裡顯示為正式版或者注冊版但是實際上我可以延期驗證或者隨機驗證呵呵這樣也許把破解者都搞得沒辦法因為他只要輸入一次注冊碼不管是什麼字符都成了正式版而至於什麼時間驗證除非他有那個耐心否則也覺得破解麻煩對破解者而言抓個特征值是個小case而要一行一行地看代碼估計吐血而死   ini中的注冊碼調入內存和真實注冊碼對比時我認為將其復雜化後放入一個數組或者blob中注冊碼不是在程序啟動時而是在多時多點多處重復的校驗我的想法在個地方校驗其程序破解的難度就可能讓pj者早退卻了   而且把注冊碼和系列號都跟程序的變量或者功能或者數據返回條數等掛鉤做的非常隱蔽不再是體現在一個if比較的地方那就能大大減少破解的可能因為我們知道破解者無法修改pbd而且不熟悉pb代碼如果搞得太復雜可能他早就不干了   我以後發行程序准備放個或者個pbd在程序下破解者要反編譯就去反吧看到個pbd就算我搞pb幾年我也知難而退了看到個pbd立即倒地吐血而死   如果主程序不能編譯成單一machinecode的exe則某些關鍵功能可以用run外部程序方式來運行而外部程序用pb單獨編寫一個小的程序小的程序是完全能編譯成功的   費解算法和寫法比如把一個數放入數組然後在其他地方其他時候有意無意去改變或者復制移動再到某些時間去執行某些操作或者引發一些限制破解變成去看你的代碼我想沒人願意繼續下去   如果代理商破解你的軟件你就讓客戶對他產生不信任即可買他的破解版就會被騙錢!做到這個足矣而且你得一棍子把他敲死   發若干個自己做的破解版其實都是測試版這樣使用者找遍網上也下載不到真正的破解版很多國內網站轉載時都是煞有介事地稱其為破解版綠色版完全版其實都是測試版搞笑!   暗樁檢測用戶越過注冊部分不動聲色地做限制或者在多處多時深層次的地方或者細節的地方做限制比如數據匯總等於或者是其他單據隱蔽的錯誤等   攻擊生成病毒特征體致使殺毒軟件介入或者刪除自己或者重啟因為重啟不可阻止而且破壞調試過程   程序運行完調用一個外部exe刪除所有文件包括mainexe和所有pbd和dll(如果他做一個假的dll就會被刪除而程序啟動時釋放一個新的文件出來永遠只使用自己的文件這樣他修改dll和pbd都沒用)   必須研究和使用pbkiller和shudepb這兩個工具研究它們的bug利用bug寫關鍵代碼至少在它bug沒解決之前是可以保護的比如pbkiller對dec{}的解析不出來(*提示如對不同精度的數做賦值則丟失精度或者做數學運算等等丟失精度後轉為字符串或者blob)對longlong也解析不出來…都可以利用之這兩個工具還有很多很多的bug[] [] From:http://tw.wingwit.com/Article/program/PB/201311/24595.html 《powerbuilder程序防止破解的辦法[1]》本文是由PB編程免費提供,內容來源於互聯網,本文歸原作者所有。 上一篇文章: PowerBuilder 讀取Oracle Clob字段內容下一篇文章: powerbuilder程序防止破解的辦法[2] 相關文章 允許外部客戶使用ISA防火牆的Web 用Telnet檢查Exchange的POP3服務 挖掘Web的另類應用(多圖) Windows2000/2003server域和活動 使用GFI WebMonitor for ISA監控 主板 CPU 硬盤 內存 顯卡 聲卡 顯示器 光驅 死機 推薦文章 js動態創建表格,刪除行列的小例子 2345軟件“大文件”軟件下載攻略 SpringMVC+highstock實現曲線報表 Struts的運行 在PB中實現串口編程 BIOS刷新失敗怎麼辦 注冊表編輯器如何打開? Spring MVC學習之處理方法返回值… Oracle服務器常用命令行工具一覽 DATAGUARD的角色轉換服務 用PowerBuilder實現Flash動畫播放 Java虛擬機概念及體系結構詳述 Java設計模式-----State模式 將“掃描儀和照相機”圖標添加到… CPU中Intel Haswell是什麼 用VB.NET為智能設備編寫半自動初… 探究兩大Java內存溢出類型 WebAPI下的如何實現參數綁定 無法在資源管理器裡看到文件 ASP.NET Session 詳解 Oracle限定特定IP訪問數據庫 GridView中獲取被點擊行中的Drop… 11招教你提高訊雷下載速度 JS 添加千分位與去掉千分位的示例 詳細講述PLSQL的書寫及語法 DELPHI基礎教程:Delphi客戶服務… 全面分析C#方法中的ref和out jQuery在html有效在jsp無效的原因… 虛擬光碟文件不能用 創建用戶隔離模式的FTP站點 關於build tool的構想 從Ant說起… 選擇合適數據結構解決應用問題(概… 企業應用級別的Ant模組編譯環境[… 軟件開發中應該避免的十大錯誤 數據結構考研分類復習真題 第四章… 2008主流數據庫產品回顧與展望 VB Shell調用後 等待程序運行結束 Swinghacks——把提示窗口放到gl… ASP.NET程序員應用程序域須知 判斷JAVA 什麼是超頻 怎麼實現CPU超頻 怎樣使用Java Servlet動態生成圖… Copyright &copy; 2005-2013 電腦知識網 Computer Knowledge All rights reserved.