日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

初步的看一下C#窗体程序的直接反汇编代码

發布時間:2025/4/14 C# 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初步的看一下C#窗体程序的直接反汇编代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C#基本窗體程序;

進入反匯編查看;

?

看一下把字符串賦給文本框的這段反匯編;?

大體的閱讀一下,以略懂匯編的人來看,基本含義:

? ? ebp寄存器的值減去一個值,取出此偏移地址的值,賦給eax;
? ? eax寄存器的值,加上一個值,取出此偏移地址的dword,賦給ecx;
? ? 取數據段某處的一個值,放入edx;
? ? 取出以ecx寄存器的值為偏移處的dword,放入eax;
? ? eax寄存器的值,再加上一個值,取出此偏移處的dword,又放入eax;
? ? 調用以eax的值為偏移處的函數;

看上去很繞,最后eax寄存器的值是啥我也不知道;

字符串是放在棧(ebp所指),或是數據段(ds),匯編不熟悉不了解;

最后調用的地址處,莫非是Win32的SetDlgItemText類似函數,文本框句柄在哪里?這些都是問題;

復習一下32位寄存器的基本用法;

? ??esp是棧指針,ebp只是存取某時刻的esp;
? ? EAX 是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。
? ? EBX 是"基地址"(base)寄存器, 在內存尋址時存放基地址。
? ? ECX 是計數器(counter), 是重復(REP)前綴指令和LOOP指令的內定計數器。
? ? EDX 則總是被用來放整數除法產生的余數。
? ? 加方括號 [ ] 表示一種間接的取操作數方式,有點類似于C語言中的指針概念;

ECX在這里應該也沒有做為計數寄存器使用;

這段代碼和手寫的Win32匯編設置文本框值完全不同;

自己寫Win32匯編設置文本框值的程序在,

? ??Win32匯編獲取和設置文本框的內容_bcbobo21cn的專欄-CSDN博客_win32設置文本框內容

總之這段反匯編看上去比花指令還花;?肯定是微軟為了防止人跟蹤進入dNet虛擬機的內部、了解到其設計機制,而搞了一些東西;

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的初步的看一下C#窗体程序的直接反汇编代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。