国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

.Net8 AOT+VMP簡單的逆向分析

開發(fā) 前端
VMP本身就是個虛擬機,它把AOT的匯編代碼,進行解析,組合,變形之后形成匯編代碼運行。了解了這一點,我們就知道上面的內存快照只不過是它運行時候的表現(xiàn),而實際上Exe里面的代碼未必會是這種表現(xiàn)。

1.前言

測試下VMP加密.NET的強度,選了最新的.Net8+AOT編譯,用VMP給它加殼。最后逆向下,簡單的分析,本篇看下。

2.概述

一.前奏

首先一段簡單的C#代碼:

namespace Test_{
    internal class Program{
        static void Main(string[] args) {
            Console.WriteLine("hello, World!");
            Console.ReadLine();
        }
    }
 }

把這段代碼編譯成AOT:

1.csproj里面添加 <PublishAot>true</PublishAot>
2.dotnet publish  -r win-x64 -c Release

編譯完成之后在路徑

bin\release\net8.0\win-x64\publish

找到Test_.exe,然后對它進行VMP加密。這里用的是VMP3.7.1。為了最大強度加密,把它所有加密全選上,如下圖:

圖片圖片


最后得到一個獨立的Exe文件Test_.vmp.exe。把這個Exe運行之后,拍攝一個內存快照,它的堆棧如下

00 00000000`0014fad8 00007fff`00cc65cb     ntdll!NtReadFile+0x14
01 00000000`0014fae0 00000001`40140e2b     KERNELBASE!ReadFile+0x7b
02 00000000`0014fb50 00000001`401419d9     Test__vmp+0x140e2b
03 00000000`0014fc10 00000001`401418d1     Test__vmp+0x1419d9
04 00000000`0014fc60 00000001`40143bed     Test__vmp+0x1418d1
05 00000000`0014fca0 00000001`400e0796     Test__vmp+0x143bed
06 00000000`0014fd00 00000001`400e0857     Test__vmp+0xe0796
07 00000000`0014fd50 00000001`401440ce     Test__vmp+0xe0857
08 00000000`0014fda0 00000001`401413d2     Test__vmp+0x1440ce
09 00000000`0014fde0 00000001`4007b455     Test__vmp+0x1413d2
0a 00000000`0014fe10 00000001`4016bc0b     Test__vmp+0x7b455
0b 00000000`0014fe40 00000001`4006e15e     Test__vmp+0x16bc0b
0c 00000000`0014fea0 00000001`400694b4     Test__vmp+0x6e15e
0d 00000000`0014fef0 00007fff`029426ad     Test__vmp+0x694b4
0e 00000000`0014ff30 00007fff`0370aa68     kernel32!BaseThreadInitThunk+0x1d
0f 00000000`0014ff60 00000000`00000000     ntdll!RtlUserThreadStart+0x28

因為它停在了ReadLine()這個托管函數(shù)上面,又因為托管代碼進行了AOT,所以它這里的堆棧其實就是非托管棧。

注意這個堆棧里面的第10行,也即編號09哪一行

09 00000000`0014fde0 00000001`4007b455     Test__vmp+0x1413d2

這里就是.Net8預編代碼AOT的托管Main入口的非托管表現(xiàn)。

Test__Test__Program__Main

看下它的內容:

00000001`4007b440 4883ec28        sub     rsp,28h
00000001`4007b444 488d0d6dc52200  lea     rcx,[Test__vmp+0x2a79b8 (00000001`402a79b8)]
00000001`4007b44b e8905f0c00      call    Test__vmp+0x1413e0 (00000001`401413e0)
00000001`4007b450 e86b5f0c00      call    Test__vmp+0x1413c0 (00000001`401413c0)
00000001`4007b455 90              nop
00000001`4007b456 4883c428        add     rsp,28h
00000001`4007b45a c3              ret

這里剛好的是托管示例的機器碼調用,注意它只是內存里面的表現(xiàn)

二:虛擬機原理

這里需要簡單了解下虛擬機的原理,虛擬機會根據(jù)傳遞進來的代碼,對這些代碼進行,解析,組合,變形等等之后,組合成新的機器碼在機器上運行。這里的VMP本身就是個虛擬機,它把AOT的匯編代碼,進行解析,組合,變形之后形成匯編代碼運行。了解了這一點,我們就知道上面的內存快照只不過是它運行時候的表現(xiàn),而實際上Exe里面的代碼未必會是這種表現(xiàn)。

這里看下,hello World字符串

00000001`4007b444 488d0d6dc52200  lea     rcx,[Test__vmp+0x2a79b8 (00000001`402a79b8)]

它指向的就是字符串實例的MethodTable,hello world字符串清晰可見:

00000001`402a79b8  88 41 20 40 01 00 00 00-0d 00 00 00 48 00 68 00  .A @........h.e.
00000001`402a79c8  6c 00 6c 00 6f 00 2c 00-20 00 57 00 6f 00 72 00  l.l.o.,. .W.o.r.
00000001`402a79d8  6c 00 64 00 21 00 00 00-00 00 00 00 00 00 00 00  l.d.!...........

但是這些代碼只是內存的表現(xiàn),而實際上存儲在Exe里面可能是加密過的字符串,這里是解析之后,最后運行的結果。如果想要修改掉這串字符,那么得找到這串字符ASCII單個byte加密的地方。

三:特征碼

我們可以看到字符串的操作取地址lea指令后面是立即數(shù):

00000001`4007b444 488d0d6dc52200  lea     rcx,[Test__vmp+0x2a79b8 (00000001`402a79b8)]

一般來說,這種取地址不會混淆,所以這里在Test_.vmp.exe的整個匯編里面搜索一下特征

lea rcx 后面跟立即數(shù)的

結果如下:

000000014067AA6D: 48 8D 0C 06    lea   rcx,[000000014067B101]

地址:000000014067AAE4如下:

000000014067B101: 93                 xchg        eax,ebx
000000014067B102: 32 C0              xor         al,al
000000014067B104: CB                 retf
000000014067B105: 02 68 B0           add         ch,byte ptr [rax-50h]

可以看到地址:000000014067B106有個0x68,還記得上面的hello World字符串嘛,首字母h的ASCII就是0x68。

OK,要找的就是這個地方了,在十六進制編輯器里面把它改成0x67,然后保存運行下Test_.vmp.exe。字符串hello World變成了gello World,如下圖。

圖片圖片

非常簡單的一個例子,帶大家玩玩VMP。如果你對以上感興趣,可以點擊下面卡片關注我。帶你玩好玩的技術。

責任編輯:武曉燕 來源: 江湖評談
相關推薦

2023-07-11 00:17:58

.Net8AOTC

2023-07-09 23:55:16

C++RoslynILC

2023-11-17 13:42:06

.NET8C#工具

2023-07-14 08:29:55

AOT.Net程序

2023-10-07 10:16:18

.Net8GC內存

2023-12-15 17:09:28

.NET8Primitives性能

2023-11-06 10:03:01

.Net8類型轉換

2023-11-17 08:52:32

.NET8C#

2024-08-30 09:21:28

2025-04-02 07:40:30

2024-11-07 12:33:47

2023-12-27 07:33:54

2018-11-06 09:31:34

物聯(lián)網(wǎng)分析AoT物聯(lián)網(wǎng)

2024-11-12 07:28:39

2017-10-21 21:58:18

符號執(zhí)行AngrCTF

2010-01-15 15:39:14

VB.NET Sub過

2009-10-09 17:40:38

VB.Net問題集

2009-11-04 09:32:12

VB.NET Auto

2009-10-12 13:11:48

VB.NET使用線程

2009-10-13 09:24:57

VB.NET Dock
點贊
收藏

51CTO技術棧公眾號

欧美日韩一区二区在线观看| 国产一区二区在线免费| 欧美一级二级三级| 亚洲男女网站| 91看片淫黄大片一级| 日本最新高清不卡中文字幕| ga∨成人网| 高清在线成人网| 欧美高清视频在线播放| 日韩一区免费观看| 成人在线黄色| 在线视频观看一区| 国产熟人av一二三区| 在线中文字幕亚洲| 欧美另类交人妖| 国产女主播在线直播| 福利一区在线观看| 国产精品亚洲综合| 在线黄色网页| 日韩欧美国产成人| 在线播放你懂得| 国产美女在线精品| 久久av二区| jlzzjlzz亚洲女人| 欧美成人午夜剧场免费观看| 22288色视频在线观看| 99re视频精品| 91精品久久久久久久久久久久久| 国产日韩中文字幕| 先锋资源久久| 国产精选久久久久久| 人妖一区二区三区| 日韩精品一区二区三区四区视频| 欧美日韩在线观看不卡| 精品嫩草影院| 久久久999精品视频| 精品国产亚洲一区二区三区| 久热精品视频在线| 欧美自拍一区| 国产成人精品综合久久久| 亚洲一区电影| 久久欧美在线电影| 日韩高清一区| 欧美xxxxxxxx| av在线网页| 久久视频在线看| 少妇一区二区视频| 成人在线一区二区| 欧美+日本+国产+在线a∨观看| 日韩av手机在线看| 91欧美精品| 91av在线视频观看| 欧洲杯半决赛直播| 97人人澡人人爽| 岛国一区二区在线观看| 色婷婷综合久久久久中文字幕| 欧美激情综合在线| 自拍视频在线| 亚洲一区第一页| 久久精品国内一区二区三区水蜜桃 | 91久久精品一区二区三区| 成人在线免费公开观看视频| 91麻豆精品久久久久蜜臀| 亚洲精品伊人| 九九九九九精品| 成人欧美一区二区三区黑人麻豆 | 国产精品黄色| 成人免费a级片| 亚洲综合色噜噜狠狠| 麻豆影视在线观看_| 久久久精品一区二区| 羞羞的视频在线看| 欧美性猛交xxxx乱大交退制版| 欧美著名女优| 亚洲黄色在线看| 婷婷亚洲五月| 美国成人av| 少妇精69xxtheporn| 免费看的黄色欧美网站| 日本aⅴ写真网站免费| 精品国偷自产在线视频| 欧美激情电影| 如如影视在线观看经典| 色久优优欧美色久优优| 蜜臀av一区| 成人免费观看视频| 1卡2卡3卡精品视频| 精品一区二区在线播放| 国产又粗又大又爽的视频| 色av一区二区| 亚洲精品a级片| 999精品视频在线| 色婷婷av一区二区三区在线观看| 日韩**一区毛片| 粗大黑人巨茎大战欧美成人| 国产精品视频一区国模私拍| 久久这里只精品最新地址| 亚洲mmav| 无码人妻aⅴ一区二区三区日本| 91麻豆精品91久久久久久清纯 | 久久久久亚洲精品中文字幕| 免费在线观看91| 欧美一二区视频| 久久99国内精品| 7777kkk亚洲综合欧美网站| 久久久久久美女| 国产精品456露脸| 久久久久久91香蕉国产| 亚洲一级在线观看| 亚洲专区一区| 成人免费直播在线| 麻豆电影在线观看| 少妇特黄a一区二区三区| 久久久亚洲影院| 欧美一区二区三区免费在线看 | 欧美日韩精品一区二区三区| 精品1区2区3区4区| 国产欧美高清视频在线| 粉嫩一区二区| 黑人巨大精品欧美一区二区奶水| 日本免费高清一区| 久久久久免费视频| 亚洲欧美中文字幕| 精品久久在线播放| 国产精品理伦片| 免费高清成人在线| 欧美艳星介绍134位艳星| 国产一区二区三区影视| yiren22亚洲综合伊人22| 久久国产亚洲精品无码| av成人在线电影| 欧美专区日韩视频| 欧美激情videoshd| 欧美福利视频在线观看| 亚洲人成电影网站色www| 一区二区三区 在线观看视频 | 曰韩不卡视频| 一区二区在线观看网站| 精品国产一区二区三| 热久久免费视频精品| 亚洲成人亚洲激情| 国产精品欧美一区二区三区不卡| 成人观看免费完整观看| 日韩成人手机在线| 婷婷夜色潮精品综合在线| 亚洲免费观看高清完整版在线观| 伊人久久综合一区二区| 亚洲精品极品| 一区二区三区国产精华| 一区二区三区韩国免费中文网站| 国产成人精品123区免费视频| 日本高清在线观看| 怡红院成人在线| 蜜桃在线视频| 黄色在线观看www| 欧美伦理91| 99re久久| 亚洲三级在线| 日韩大胆成人| 色综合综合色| 国产精品一二| 水野朝阳av一区二区三区| 另类专区欧美蜜桃臀第一页| 国产高清亚洲一区| 久久久99免费| 一本大道久久a久久综合| 欧美日韩的一区二区| 精品国产污污免费网站入口| 中文字幕日韩在线观看| 欧美激情视频免费观看| 国产精品久久久久免费a∨| 欧美一区1区三区3区公司| 日日橹狠狠爱欧美超碰| 国产乱妇乱子| 国产在线观看免费网站| 99久久精品免费观看国产| 天堂地址在线www| 九色porny丨首页入口在线| 成人激情自拍| 久久成人免费网| 亚洲最大的成人av| 337p日本欧洲亚洲大胆色噜噜| 欧美在线亚洲在线| 无码av天堂一区二区三区| 精品欧美不卡一区二区在线观看| 99亚洲男女激情在线观看| 亚洲福利一区| 亚洲va国产天堂va久久en| 欧美午夜视频一区二区| 中文字幕亚洲欧美在线| 动漫3d精品一区二区三区| 欧美久久久久久久久久久久久| 91这里只有精品| 91综合在线| 亚洲精品中文字幕乱码三区| 久久国产精品影片| 亚洲精品在线视频观看| 羞羞的视频在线观看| 99精品福利视频| 欧美一区午夜视频在线观看|