日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

160 - 38 CyberBlade.2

發(fā)布時(shí)間:2023/12/1 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 160 - 38 CyberBlade.2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境
Windows xp sp3

工具
1.VBExplorer
2.ollydbg

查殼
OD載入往上翻可以看出是vb程序,看到

00401042 .- FF25 60104100 jmp dword ptr ds:[<&MSVBVM50.MethCallEngine>] ; MSVBVM50.MethCallEngine

可以知道是p-code的了
測(cè)試

OD載入后搜字符串是搜不到的東西了。
參考
《使用OllyDbg從零開始Cracking》第29和30章關(guān)于p-code的內(nèi)容之后就可以分析出來了。

0040E393前面的是一些對(duì)輸入內(nèi)容長(zhǎng)度格式等判斷 0040E393 循環(huán)開始 0040E3A6 讀入name 0040E3B8 name入棧 0040E3BB 將name從str變成variant類型 0040E3BE 這個(gè)是指向上面的variant的指針 0040E3C1 這是取第一個(gè)字符函數(shù) 0040E3C6 將上面的函數(shù)計(jì)算出的結(jié)果進(jìn)棧 0040E3C9 0040E3CD 將剛剛進(jìn)棧的字符轉(zhuǎn)成數(shù)值 0040E3D2 將剛剛得到的數(shù)值保存起來 0040E3D5 將得到的數(shù)值轉(zhuǎn)成10進(jìn)制然后再轉(zhuǎn)為字符串 0040E3D9 將得到的字符串轉(zhuǎn)回variant 0040E3EF 跳回去0040E3930040E3F5 這里是將上面循環(huán)得到的字符串入棧 0040E3F8 得到上面入棧字符串的長(zhǎng)度 0040E4020x9比較 0040E404 相等就跳到40E425 0040E407 將上面循環(huán)得到的字符串入棧 0040E40A push了一個(gè)圓周率 0040E416 字符串轉(zhuǎn)為數(shù)值除以3.141592654 0040E41A 將結(jié)果入棧 0040E422 jmp 0040E3F50040E425 將上面的結(jié)果取整入棧 0040E430 將棧中的值轉(zhuǎn)為16進(jìn)制后再與0x30F85678進(jìn)行異或運(yùn)算 0040E434 0040E438 將上面的計(jì)算結(jié)果入棧 0040E43E 0040E4410xD8B3入棧 0040E4450040E438處入棧的值減去0xD8B3,并將結(jié)果入棧 0040E449 0040E44D 0040E452 0040E455 0040E45A 開始for循環(huán) 0040E460 0040E463 0040E464 0040E46D 讀取serial 0040E472 serial入棧 0040E475 0040E478 0040E47A 0040E47D 0040E480 這里push了一個(gè)值 0040E481 和輸入的serial比較是否相同 0040E483 0040E486 0040E489 相同則跳到0040E48C 0040E48C 0040E48F 跳回循環(huán)0040E4A2 讀入serial 0040E4A7 0040E4AA 將字符串轉(zhuǎn)為variant 0040E4AD 將上面的計(jì)算的值存了進(jìn)來 0040E4B0 用字符串的字面值減去上面計(jì)算的值 0040E4B4 0040E4B7 0040E4C1 讀入name 0040E4C6 0040E4C9 計(jì)算name長(zhǎng)度 0040E4CF 判斷是否相等,不相等就為0 0040E4DE 如果上面判斷結(jié)果為0就跳到錯(cuò)誤消息框,

還是和Native-code代碼一樣,在分析算法中還是存在許多東西可以跳過的。
指令的位置可以用VBExplorer反編譯出來。
然后用OD動(dòng)態(tài)調(diào)試觀察執(zhí)行細(xì)節(jié)就行了

總結(jié)起來就是:
將name中每一個(gè)字符轉(zhuǎn)成ascii值。
如:abcdefg
變成:979899100101102103

再判斷這個(gè)值長(zhǎng)度是否大于0x9
如果是就除以3.141592654
重復(fù)直到長(zhǎng)度不大于0x9
于是就有:351021547

再將結(jié)果與0x30F85678異或
變成:605323155

減去0xD8B3,
變成:605267680

最后加上name的長(zhǎng)度7:
變成:605267687

總結(jié)

以上是生活随笔為你收集整理的160 - 38 CyberBlade.2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。