接觸ab的plc有幾天了,一直在想辦法解開加密的程序塊,在網(wǎng)上百度各種解密方法,不是過時了就是收費,在億萬論壇上看到幾位大牛負(fù)責(zé)免費給解密程序,具體方法沒有透露,只有億萬ab論壇的郭版主曾經(jīng)發(fā)過破解補丁,但沒有流傳開,我這是到處求爺爺告奶奶也沒有解決問題,一狠心自己研究搞定它。
我先做了幾次試驗,先將自己測試的一個acd程序文件進(jìn)行源保護(hù)配置,如下圖
然后提示
生成個sk.dat文件,這個文件是用來存儲密碼的,我做了多次試驗,acd程序塊設(shè)置的密碼都存在這個文件里,而且可以用記事本查看sk.dat這個文件,里面肯定有一組密碼和剛才設(shè)置的密碼一樣。程序塊密碼設(shè)置好后,如果這個文件丟失,或者這個文件里面沒有了原來的密碼,這程序塊顯示灰色無法打開。
經(jīng)以上實驗分析:rs5000軟件打開項目時先檢查密碼保護(hù)文件sk.dat,然后結(jié)合已打開的acd程序項目進(jìn)行校驗,如果sk.dat里面有已打開項目的密碼,則顯示加密程序塊,如果沒有,則加密塊變灰色無法查看。
這個實驗說明密碼關(guān)鍵sk.dat文件里,咱們?nèi)绻麤]有sk.dat文件或者不知道密碼怎樣解密呢?
我自己設(shè)想了幾個方法:
1、既然密碼也存在acd項目里,咱用文件比較器查看一個項目加密前后的區(qū)別,看是否能找出規(guī)律,實驗證明,rs5000的項目文件是不行的,以前早期產(chǎn)品可以用此方法,現(xiàn)在早已被和諧。
2、修改rs5000軟件,用反匯編加動態(tài)跟蹤找出rs5000軟件在運行項目以后如何比較密碼,然后進(jìn)行顯示或者不顯示加密塊,咱來個強制jmp到顯示程序塊,這不就ok了嗎,咱匯編功底不行,用od加載rs5000,設(shè)置斷點,跟蹤半天也找不到關(guān)鍵匯編指令位置,干脆放棄,這方法還是留給大牛吧。
3、自己做個sk.dat的字典用文件,用黑客字典生成器生成一個,然后看看能不能暴力破解出來。實驗證明我成功了!
下面就介紹一下成功的方法:
sk.dat 文件可以更改,但是必須關(guān)閉rs5000
還是用自己做測試的acd程序,第一步,配置文件源保護(hù),設(shè)置好sk.dat的路徑,我給它設(shè)為c:\sk.dat 然后對程序段進(jìn)行加密,密碼自己設(shè)定為12345 然后關(guān)閉rs5000 ,
第二步,用記事本打開sk.dat文件,將12345刪除,重新打開測試的acd程序,此時程序塊也顯示灰色,關(guān)閉rs5000。
第三步,用黑客字典生成個sk.dat文件,選擇數(shù)字純數(shù)字模式,位數(shù)選擇1-5位,然后點擊生成字典,提示密碼總數(shù)111110個,大小747k,然后把這個文件替換原來的sk.dat。
第四步,重新打開測試的acd程序,經(jīng)過幾秒鐘,項目順利打開,加密的程序塊已經(jīng)可以看到。
到此破解實驗成果。
然后我用此辦法解密單位的斗輪機acd程序,先生成純數(shù)字的1-6位字典sk.dat,運行項目沒有成果,顯示
我又生成純小寫字母的1-4位字典文件sk.dat,運行項目,此時加載時間稍長,請耐心等待,等加載成功后顯示
證明密碼已經(jīng)破解,再查看文件源保護(hù)配置
看到密碼原來是ab
興奮中.......
愿此方法能夠幫助朋友們解決項目加密問題。