瀏覽單個文章
奇木拉
*停權中*
 
奇木拉的大頭照
 

加入日期: Sep 2020
文章: 7
Question 請教一個VC++的問題

原始碼:
代碼:
void Fun()
{
	__asm cmp ecx, 0x4000
	__asm jnz NO_Trinity
	__asm push 0x1E
	__asm push offset STRS_TRINITY_Tutorial
	__asm lea ecx, [ebp-0x20]
	caddr = 0x004040E0;
	__asm call caddr


編譯後變成這樣:

void Fun OP 開頭
代碼:
10001360 T> > \55                      push ebp
10001361    .  8BEC                    mov ebp,esp
10001363    .  83EC 40                 sub esp,0x40
10001366    .  53                      push ebx
10001367    .  56                      push esi
10001368    .  57                      push edi
10001369    .  8D7D C0                 lea edi,dword ptr ss:[ebp-0x40]
1000136C    .  B9 10000000             mov ecx,0x10
10001371    .  B8 CCCCCCCC             mov eax,0xCCCCCCCC
10001376    .  F3:AB                   rep stos dword ptr es:[edi]

10001378    .  81F9 00400000           cmp ecx,0x4000                             ;  這裡是 ASM 開始
1000137E    .  0F85 B7000000           jnz Trinity.1000143B
10001384    .  6A 1E                   push 0x1E
10001386    .  68 80D00310             push offset Trinity.STRS_TRINITY_Tutorial
1000138B    .  8D4D E0                 lea ecx,dword ptr ss:[ebp-0x20]
1000138E    .  C705 D8F10310 E0404000  mov dword ptr ds:[caddr],0x4040E0
10001398    .  FF15 D8F10310           call dword ptr ds:[caddr]


我要編譯後開頭就是 cmp ecx,0x4000 , 不要 10001360 - 10001376 那段, 這樣該怎麼定義 fun , 用 void 不對吧 ?
     
      
舊 2021-03-23, 10:23 AM #1
回應時引用此文章
奇木拉離線中