生活随笔
收集整理的這篇文章主要介紹了
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>]
可以知道是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)度
0040E402 與
0x9比較
0040E404 相等就跳到
40E425
0040E407 將上面循環(huán)得到的字符串入棧
0040E40A push了一個(gè)圓周率
0040E416 字符串轉(zhuǎn)為數(shù)值除以
3.141592654
0040E41A 將結(jié)果入棧
0040E422 jmp
0040E3F5
0040E425 將上面的結(jié)果取整入棧
0040E430 將棧中的值轉(zhuǎn)為
16進(jìn)制后再與
0x30F85678進(jìn)行異或運(yùn)算
0040E434
0040E438 將上面的計(jì)算結(jié)果入棧
0040E43E
0040E441 將
0xD8B3入棧
0040E445 將
0040E438處入棧的值減去
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ò),歡迎將生活随笔推薦給好友。