㈠ 使數據段、附加段與代碼段同段的作用是什麼呀
程序不好破解,還有程序中的數據保密性較強。。。一般病毒、黑客和加密程序才這么做吧。。。常規程序好像沒有這么寫的。。。
而且這種做法只能用匯編來完成,其他高級語言都會分段。
給你舉個例子。。。
在C語言中:
char *p = "123";
printf(p);
這兩行代碼經過編譯後,"123"這個數據就會被放置於數據段中,而printf(p)則存在於代碼段。程序執行後會在控制台輸出"123"。
char p[10];
strcpy(p, "123");
printf(p);
這三行代碼經過編譯後,p[10]會在內存中開辟空間並將地址放置於數據段中,"123"也將存在於數據段中,strcpy和printf將存在於代碼段中。程序執行後會在控制台輸出"123"。
在匯編語言中:
.....
mov edi, $ ;這行代碼的意思就是將EIP寄存器的內容寫入EDI,$代表當前指令的EIP
nop
nop
nop
nop
mov ptr byte [edi], '1'
mov ptr byte [edi+1], '2'
mov ptr byte [edi+3], '3'
mov ptr byte [edi+4], 0
push edi
call ....
...
這幾行匯編中存在常量"123",程序運行後在控制台輸出"123",但是卻沒有數據段。當程序執行完一大堆的nop之後,接下去的指令將常量"123"動態的寫入從"mov edi, $"指令開始的3個位元組的空間,並將原指令替換掉了,所以其常量存在於代碼段。
.....
mov edi, $
nop
nop
nop
nop
...
...
push edi
call ....
...
這幾行匯編代碼中,當程序執行到push edi之前的指令時,相當於在代碼段中開辟了N個位元組的空間(N = 多少個nop + "mov edi, $「的長度),通過向[edi]中寫入數據,即相當於strcpy。而這N個位元組的數據儲存空間也存在於代碼段。
由上面的不難看出,如果數據段要和代碼段合並,則必須通過指令動態的在代碼段中分配相應的儲存空間,分配後寫入數據,便會將源指令替換掉。換句話說,這種代碼只能執行一次,若第二次執行,操作系統就會發出CPU遇到無效指令的錯誤。
當然,你也可以把空間分配到永遠不可能執行到的指令處,比如:
...
jmp xxxx
_MemoryStart:
mov edi, $
jmp _EntryContinue
nop
nop
nop
...
nop
_MemoryEnd:
...
這樣一來,你只需要在程序啟動時,使用指令jmp _MemoryStart來分配空間,當程序返回到_EntryContinue的時候把edi的內容保存一下,那麼你就可以永久使用[edi]中的空間了。因為在_MemoryStart之前有一個無條件跳轉,所以無論在什麼情況下代碼執行到此處都會自動跳轉到xxxx處,除非是用jmp指令直接跳轉到_MemoryStart。。。。但是這樣你要完全正確的搞定xxxx所指的地址。而且這個程序沒有任何的兼容性可言,在WinXP SP1下能正常工作,但在SP2、SP3、Vista、Win7下就有可能無法工作了。
㈡ 電子數據交換edi的標准有哪些
電子數據交換的標准主要包括以下幾個方面:
報文標准:
通信標准:
數據元素與代碼標准:
安全標准:
語法規則:
這些標准共同構成了EDI系統的核心,使得不同企業之間的數據交換變得高效、准確和安全。
㈢ EDI小課堂之EDIFACT埠詳解
EDIFACT埠詳解:
功能概覽:
配置說明:
ACK配置:
通過以上配置與功能,EDIFACT埠能夠實現EDIFACT報文與XML格式之間的順暢轉換,滿足企業在電子數據交換中的高效需求。
㈣ 寧波港EDI服務中心對報文代碼定義了哪裡規則
寧波港EDI服務中心報文代碼的規則定義明確,具體內容如下:
一、報文格式規則
寧波港EDI服務中心對報文代碼的定義首先涉及報文格式規則。這些規則明確了報文的組成結構,包括報文頭、報文主體和報文尾。報文頭通常包含發送方和接收方的信息、報文的日期和時間等;報文主體則詳細描述了交易或業務的具體內容,如貨物信息、運輸安排等;報文尾用於校驗和簽名,確保報文的完整性和真實性。
二、數據元素規則
在數據元素層面,寧波港EDI服務中心對報文代碼的定義規定了數據元素的命名規則、數據類型、數據長度和數據取值范圍等。這些規則確保了數據的一致性和准確性,避免了因數據格式不統一導致的通信障礙。
三、編碼規則
此外,寧波港EDI服務中心還制定了詳細的編碼規則。這些規則明確了如何對信息進行編碼,以確保信息的正確傳輸和解讀。編碼規則包括字元集的選擇、編碼方式以及特殊字元的處理等。這些規則的實施確保了不同系統之間的信息交換能夠順利進行。
寧波港EDI服務中心對報文代碼的規則定義是港口電子數據交換的基礎,確保了信息傳輸的准確性和效率。這些規則的實施有助於提升寧波港的運營效率和競爭力,為港口物流的智能化、自動化發展提供了有力支持。