欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

LyScript實現(xiàn)計算片段Hash并寫出Excel的示例代碼

 更新時間:2022年09月13日 09:44:08   作者:lyshark  
本案例將學(xué)習(xí)運用LyScript計算特定程序中特定某些片段的Hash特征值,并通過xlsxwriter這個第三方模塊將計算到的hash值存儲成一個excel表格,感興趣的可以跟隨小編一起學(xué)習(xí)一下

本案例將學(xué)習(xí)運用LyScript計算特定程序中特定某些片段的Hash特征值,并通過xlsxwriter這個第三方模塊將計算到的hash值存儲成一個excel表格,本例中的知識點可以說已經(jīng)具備了簡單的表格輸出能力,如果時間充裕完全可以實現(xiàn)自動化報告生成。

第一步實現(xiàn)計算特定片段的特征值,此類代碼實現(xiàn)原理用戶傳入一個rva相對地址以及讀入指令長度,并通過內(nèi)置的hashlib庫實現(xiàn)計算內(nèi)存段內(nèi)指令的特征,如下代碼先來實現(xiàn)計算兩段指令特征。

import hashlib
import zlib,binascii
from LyScript32 import MyDebug

# 計算哈希
def calc_hash(dbg, rva,size):
    read_list = bytearray()
    ref_hash = { "va": None, "size": None, "md5":None, "sha256":None, "sha512":None, "crc32":None }

    # 得到基地址
    base = dbg.get_local_module_base()

    # 讀入數(shù)據(jù)
    for index in range(0,size):
        readbyte = dbg.read_memory_byte(base + rva + index)
        read_list.append(readbyte)

    # 計算特征
    md5hash = hashlib.md5(read_list)
    sha512hash = hashlib.sha512(read_list)
    sha256hash = hashlib.sha256(read_list)
    # crc32hash = binascii.crc32(read_list) & 0xffffffff

    ref_hash["va"] = hex(base+rva)
    ref_hash["size"] = size
    ref_hash["md5"] = md5hash.hexdigest()
    ref_hash["sha256"] = sha256hash.hexdigest()
    ref_hash["sha512"] = sha512hash.hexdigest()
    ref_hash["crc32"] = hex(zlib.crc32(read_list))
    return ref_hash

if __name__ == "__main__":
    dbg = MyDebug()
    connect = dbg.connect()

    # 傳入相對地址,計算計算字節(jié)
    ref = calc_hash(dbg,0x19fd,10)
    print(ref)

    # 計算第二段
    ref = calc_hash(dbg,0x1030,26)
    print(ref)

    dbg.close()

計算后輸出字典格式:

第二部使用第三方庫,將讀入的hash參數(shù)寫出到表格內(nèi),并在下方生成hash圖例,方便觀察。

import hashlib
import time
import zlib,binascii
from LyScript32 import MyDebug
import xlsxwriter

# 計算哈希
def calc_hash(dbg, rva,size):
    read_list = bytearray()
    ref_hash = { "va": None, "size": None, "md5":None, "sha256":None, "sha512":None, "crc32":None }

    # 得到基地址
    base = dbg.get_local_module_base()

    # 讀入數(shù)據(jù)
    for index in range(0,size):
        readbyte = dbg.read_memory_byte(base + rva + index)
        read_list.append(readbyte)

    # 計算特征
    md5hash = hashlib.md5(read_list)
    sha512hash = hashlib.sha512(read_list)
    sha256hash = hashlib.sha256(read_list)
    # crc32hash = binascii.crc32(read_list) & 0xffffffff

    ref_hash["va"] = hex(base+rva)
    ref_hash["size"] = size
    ref_hash["md5"] = md5hash.hexdigest()
    ref_hash["sha256"] = sha256hash.hexdigest()
    ref_hash["sha512"] = sha512hash.hexdigest()
    ref_hash["crc32"] = hex(zlib.crc32(read_list))
    return ref_hash

if __name__ == "__main__":
    dbg = MyDebug()
    connect = dbg.connect()

    # 打開一個被調(diào)試進程
    dbg.open_debug("D:\\Win32Project.exe")

    # 傳入相對地址,計算計算字節(jié)
    ref = calc_hash(dbg,0x19fd,10)
    print(ref)

    ref2 = calc_hash(dbg,0x1030,26)
    print(ref2)

    ref3 = calc_hash(dbg,0x15EB,46)
    print(ref3)

    ref4 = calc_hash(dbg,0x172B,8)
    print(ref4)

    # 寫出表格
    workbook = xlsxwriter.Workbook("pe_hash.xlsx")
    worksheet = workbook.add_worksheet()

    headings = ["VA地址", "計算長度", "MD5", "SHA256", "SHA512","CRC32"]
    data = [
        [ref.get("va"),ref.get("size"),ref.get("md5"),ref.get("sha256"),ref.get("sha512"),ref.get("crc32")],
        [ref2.get("va"), ref2.get("size"), ref2.get("md5"), ref2.get("sha256"), ref2.get("sha512"), ref2.get("crc32")],
        [ref3.get("va"), ref3.get("size"), ref3.get("md5"), ref3.get("sha256"), ref3.get("sha512"), ref3.get("crc32")],
        [ref4.get("va"), ref4.get("size"), ref4.get("md5"), ref4.get("sha256"), ref4.get("sha512"), ref4.get("crc32")]
    ]

    # 定義表格樣式
    head_style = workbook.add_format({"bold": True, "align": "center", "fg_color": "#D7E4BC"})
    worksheet.set_column("A1:F1", 15)

    # 逐條寫入數(shù)據(jù)
    worksheet.write_row("A1", headings, head_style)
    for i in range(0, len(data)):
        worksheet.write_row("A{}".format(i + 2), data[i])

    # 添加條形圖,顯示前十個元素
    chart = workbook.add_chart({"type": "line"})
    chart.add_series({
        "name": "=Sheet1!$B$1",              # 圖例項
        "categories": "=Sheet1!$A$2:$A$10",  # X軸 Item名稱
        "values": "=Sheet1!$B$2:$B$10"       # X軸Item值
    })
    chart.add_series({
        "name": "=Sheet1!$C$1",
        "categories": "=Sheet1!$A$2:$A$10",
        "values": "=Sheet1!$C$2:$C$10"
    })
    chart.add_series({
        "name": "=Sheet1!$D$1",
        "categories": "=Sheet1!$A$2:$A$10",
        "values": "=Sheet1!$D$2:$D$10"
    })

    # 添加柱狀圖標題
    chart.set_title({"name": "計算HASH統(tǒng)計圖"})
    # chart.set_style(8)

    chart.set_size({'width': 500, 'height': 250})
    chart.set_legend({'position': 'top'})

    # 在F2處繪制
    worksheet.insert_chart("H2", chart)
    workbook.close()


    # 關(guān)閉被調(diào)試進程
    time.sleep(1)
    dbg.close_debug()
    dbg.close()

生成后的圖例效果如下:

到此這篇關(guān)于LyScript實現(xiàn)計算片段Hash并寫出Excel的示例代碼的文章就介紹到這了,更多相關(guān)LyScript算片段Hash內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python靜態(tài)web服務(wù)器實現(xiàn)方法及代碼詳解

    python靜態(tài)web服務(wù)器實現(xiàn)方法及代碼詳解

    在本篇內(nèi)容里小編給大家分享了一篇關(guān)于python靜態(tài)web服務(wù)器實現(xiàn)方法,有需要的朋友們可以參考下。
    2022-11-11
  • Django?報錯:Broken?pipe?from?('127.0.0.1',?58924)的解決

    Django?報錯:Broken?pipe?from?('127.0.0.1',?5892

    這篇文章主要介紹了Django?報錯:Broken?pipe?from?('127.0.0.1',?58924)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • python3實現(xiàn)彈彈球小游戲

    python3實現(xiàn)彈彈球小游戲

    這篇文章主要介紹了python3實現(xiàn)彈彈球小游戲,圖形用戶界面tkinter,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Pycharm激活碼激活兩種快速方式(附最新激活碼和插件)

    Pycharm激活碼激活兩種快速方式(附最新激活碼和插件)

    這篇文章主要介紹了Pycharm兩種快速激活方式(附最新激活碼和插件) ,本文給大家分享兩種方式,小編在文章給大家推薦方法二,大家可以根據(jù)自己需要選擇,感興趣的朋友跟隨小編一起看看吧
    2020-03-03
  • python scrapy爬蟲代碼及填坑

    python scrapy爬蟲代碼及填坑

    這篇文章主要介紹了python scrapy爬蟲代碼及填坑,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 三分鐘時間教你用Python繪制春聯(lián)

    三分鐘時間教你用Python繪制春聯(lián)

    大家好,本篇文章主要講的是三分鐘時間教你用Python繪制春聯(lián),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python多線程原理與用法實例剖析

    Python多線程原理與用法實例剖析

    這篇文章主要介紹了Python多線程原理與用法,結(jié)合具體的爬蟲實例剖析了多線程的相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2019-01-01
  • 解決sublime+python3無法輸出中文的問題

    解決sublime+python3無法輸出中文的問題

    今天小編就為大家分享一篇解決sublime+python3無法輸出中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • python使用htmllib分析網(wǎng)頁內(nèi)容的方法

    python使用htmllib分析網(wǎng)頁內(nèi)容的方法

    這篇文章主要介紹了python使用htmllib分析網(wǎng)頁內(nèi)容的方法,涉及Python使用htmllib模塊的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 使用python生成云詞圖實現(xiàn)畫紅樓夢詞云圖

    使用python生成云詞圖實現(xiàn)畫紅樓夢詞云圖

    紅樓夢相信大家都看過,今天給大家介紹另一種不用搞得烏漆麻黑的方式來制作紅樓夢的詞云圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09

最新評論