python批量修改寄存器的值(python 批量更改文件名)

本文目錄一覽:

python怎麼修改某個內存地址的數據

使用ctypes模塊調用WriteProcessMemory函數,在創建程序進程後,就可以修改該程序指定內存地址。WriteProcessMemory的函數原型如下所示。

BOOL WriteProcessMemory(

HANDLE     hProcess,

LPVOID     lpBaseAddress,

LPCVOID    lpBuffer,

SIZE_T     nSize,

SIZE_T*    lpNumberOfBytesWritten

);

其參數含義如下。

·     hProcess:要寫內存的進程句柄。

·     lpBaseAddress:要寫的內存起始地址。

·     lpBuffer:寫入值的地址。

·     nSize:寫入值的大小。

·     lpNumberOfBytesWritten   :實際寫入的大小。

python代碼示例如下:

from ctypes import *

# 定義_PROCESS_INFORMATION結構體

   class _PROCESS_INFORMATION(Structure):     

       _fields_ = [(‘hProcess’, c_void_p),

                     (‘hThread’, c_void_p),

                     (‘dwProcessId’, c_ulong),

                     (‘dwThreadId’, c_ulong)]

   # 定義_STARTUPINFO結構體

   class _STARTUPINFO(Structure):

       _fields_ = [(‘cb’,c_ulong),

                     (‘lpReserved’, c_char_p),

                     (‘lpDesktop’, c_char_p),

                     (‘lpTitle’, c_char_p),

                     (‘dwX’, c_ulong),

                     (‘dwY’, c_ulong),

                     (‘dwXSize’, c_ulong),

                     (‘dwYSize’, c_ulong),

                     (‘dwXCountChars’, c_ulong),

                     (‘dwYCountChars’, c_ulong),

                     (‘dwFillAttribute’, c_ulong),

                     (‘dwFlags’, c_ulong),

                     (‘wShowWindow’, c_ushort),

                     (‘cbReserved2’, c_ushort),

                     (‘lpReserved2’, c_char_p),

                     (‘hStdInput’, c_ulong),

                     (‘hStdOutput’, c_ulong),

                     (‘hStdError’, c_ulong)]

   NORMAL_PRIORITY_CLASS = 0x00000020              # 定義NORMAL_PRIORITY_CLASS

   kernel32 = windll.LoadLibrary(“kernel32.dll”)       # 加載kernel32.dll

   CreateProcess = kernel32.CreateProcessA         # 獲得CreateProcess函數地址

   ReadProcessMemory = kernel32.ReadProcessMemory # 獲得ReadProcessMemory函數地址

   WriteProcessMemory = kernel32.WriteProcessMemory    # 獲得WriteProcessMemory函數地址

   TerminateProcess = kernel32.TerminateProcess

   # 聲明結構體

   ProcessInfo = _PROCESS_INFORMATION()

   StartupInfo = _STARTUPINFO()

   file = ‘ModifyMe.exe’                           # 要進行修改的文件

   address = 0x0040103c                                # 要修改的內存地址

   buffer = c_char_p(“_”)                          # 緩衝區地址

   bytesRead = c_ulong(0)                          # 讀入的字節數

   bufferSize = len(buffer.value)                  # 緩衝區大小

   # 創建進程

   if CreateProcess(file, 0, 0, 0, 0, NORMAL_PRIORITY_CLASS, 0, 0, byref(StartupInfo), byref(ProcessInfo)):

       # 讀取要修改的內存地址,以判斷是否是要修改的文件

       if ReadProcessMemory(ProcessInfo.hProcess, address, buffer, bufferSize, byref(bytesRead)):

           if buffer.value == ‘\x74’:

               buffer.value = ‘\x75’                  # 修改緩衝區內的值,將其寫入內存

               # 修改內存

               if WriteProcessMemory(ProcessInfo.hProcess, address, buffer, bufferSize, byref(bytesRead)):

                   print ‘成功改寫內存!’

               else:

                   print ‘寫內存錯誤!’

           else:

               print ‘打開了錯誤的文件!’

              TerminateProcess(ProcessInfo.hProcess,0)   # 如果不是要修改的文件,則終止進程

       else:

           print ‘讀內存錯誤!’

   else:

       print ‘不能創建進程!’

python控件批量賦值

test1,test2控件是在Test列表裡面?是要把每個控件的變量設置文本的內容?即exec(“self.ui.test1.setText(“test1″)”)和(“self.ui.test2.setText(“test2″)”)??如果是這樣的話可以使用這樣寫

for i in range(len(Test)):

exec(“self.ui.%s.setText(‘%s’)”%(Test[i],Test[i]))

或者不用索引

for i in Test:

exec(“self.ui.%s.setText(‘%s’)”%(i,i))

希望有幫助。。。。

python中怎麼批量修改字典中values值

for dic_key in dic:

dic[dic_key] = dataframe的values值

就是一個拿出字典的Value賦值的過程。入門級的喲。

原創文章,作者:PRBOP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130135.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
PRBOP的頭像PRBOP
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論