當前打開有記事本;使用winhex來看一下內存搜索;能不能搜到記事本中的文本;
如下圖,選擇 Tools - Open Memory... 菜單;
列出進程;
提示只有64位版本才能顯示模塊或進程名;當前是按進程ID顯示;
使用power shell查看一下記事本進程的ID;當前打開2個記事本,ID如下圖;2488,7700;
powershell由進程名查看進程ID的方法:
利用管道 賦值給$id
$id = Get-Process -name explorer* | Select-Object id | ForEach-Object -Process{$_.id}
$id
第一個記事本是2488,展開菜單,有三個內存查看選項;
雙擊 Primary memory;提示:只有註冊版才能編輯內存,當前只能查看;
進入到2488號進程的主內存;Offset列是地址,然後是內存內容,然後是內存各種屬性,如分配的尺寸、基址等;
第一個記事本包含一些文本,其中有"電話溝通了一下";
在查找對話框輸入此段文本,然後搜索;
找不到;
再點擊菜單 Find Hex Value,彈出如下對話框;
輸入文本,點擊 OK 搜索;彈出如下提示;
搜索十六進制值必須輸入十六進制,要先轉換爲十六進制輸入纔行;
再搜索文本,把下拉選項改爲Unicode,前面是ASCII;
再搜;還是搜不到;
根據相關資料有:
緩衝區是UNICODE的。
Winhex提供了搜索十六進制數值和文本字符的功能,在搜索文件字符時需要注意的是,要設置搜索的目標是ASCII字符還是Unicode字符;另外需要注意的是,Winhex對中文字符支持尚有不足,使用Winhex搜索漢字時很多時候無法找到並定位。
然後在第一個記事本輸入一串英文:testbybo;
然後搜索這段文本;
這就找到了;如下圖;地址 00398380 這一行;
查一下 電話溝通 這幾個漢字的Unicode編碼;如下:
\u7535\u8bdd\u6c9f\u901a
輸入這些Unicode編碼,再搜;還是搜不到;