在VB或VB.NET中调用此ASM函数 [英] Call this ASM function in VB OR VB.NET

查看:95
本文介绍了在VB或VB.NET中调用此ASM函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在dll ASM中有这个功能。我的问题是如何在vb或vb.net中调用此函数。我以前称之为其他功能,但是这个名字包含::,vb给我错误名称。



----------- -------------------------------------------------- ------------------- CFKViaDev :: FV_ReadDataFromFK(long,long,void _ *,unsigned_long,unsigned_long,unsigned_short _ *,unsigned_long _ *,unsigned_long,struct_HWND ___ *):

10002020 55 push ebp; ?FV_ReadDataFromFK @ CFKViaDev @@ QAEJJJPAXKKPAGPAKKPAUHWND __ @@@ Z

10002021 8BEC mov ebp,esp

10002023 6AFF push 0FFFFFFFFh

10002025 68B8E50110推力偏移off_1001E5B8

1000202A 689C8B0010推动偏移off_10008B9C

1000202F 64A100000000 mov eax,fs:[0]

10002035 50推eax

10002036 64892500000000 mov fs:[0],esp

1000203D 83EC18 sub esp,18h

10002040 53 push ebx

10002041 56 push esi

10002042 57 push edi

10002043 8BF1 mov esi,ecx

10002045 8975D8 mov [ebp-28h],esi

10002048 33DB xor ebx,ebx

1000204A 895DDC mov [ebp-24h],ebx

1000204D 895D E0 mov [ebp-20h],ebx

10002050 BF01000000 mov edi,1

10002055 897DE4 mov [ebp-1Ch],edi

10002058 8B8638020000 mov eax,[esi + 238h]

1000205E 6AFF push 0FFFFFFFFh

10002060 50 push eax

10002061 FF158CE20110 call dword ptr [WaitForSingleObject]

10002067 85C0测试eax,eax

10002069 0F85FB000000 jne loc_1000216A

1000206F 895DFC mov [ebp-4],ebx

10002072 8B4520 mov eax,[ebp + 20h]

10002075 3BC3 cmp eax,ebx

10002077 7405 jz loc_1000207E

10002079 8B00 mov eax, [eax]

1000207B 8945E0 mov [ebp-20h],eax

1000207E loc_1000207E :;外广写10002077

1000207E 8B5524 mov edx,[ebp + 24h]

10002081 3BD3 cmp edx,ebx

10002083 7508 jnz loc_1000208D

10002085 BA28230000 mov edx,2328h

1000208A 895524 mov [ebp + 24h],edx

1000208D loc_1000208D :; Xref 10002083

1000208D 8B860C020000 mov eax,[esi + 20Ch]

10002093 48 dec eax

10002094 83F803 cmp eax,3

10002097 0F878E000000 jnbe loc_1000212B

1000209D FF248594210010 jmp dword ptr [off_10002194 + eax * 4]



100020A4 off_100020A4 :; Xref 10002194 100021A0

100020A4 8B0E mov ecx,[esi]

100020A6 3BCB cmp ecx,ebx

100020A8 7507 jnz loc_100020B1

100020AA BFF7FFFFFF mov edi,0FFFFFFF7h

100020AF EB7F jmp loc_10002130



100020B1 loc_100020B1 :;外部参照100020A8

100020B1 8B4528 mov eax,[ebp + 28h]

100020B4 50推eax>

100020B5 6800040000推400h

100020BA 52 push edx

100020BB 8D55E0 lea edx,[ebp-20h]

100020BE 52 push edx

100020BF 8D45DC lea eax,[ ebp-24h]

100020C2 50推eax

100020C3 8B5518 mov edx,[ebp + 18h]

100020C6 52 push edx

100020C7 8B450C mov eax,[ebp + 0Ch]

100020CA 50推eax

100020CB 8B5508 mov edx,[ebp + 8]

100020CE 52推edx

100020CF 8B4514 mov eax,[ebp + 14h]

100020D2 50推eax>
100020D3 8B5510 mov edx,[ebp + 10h]

100020D6 52推edx

100020D7 E884420000电话fn_10006360

100020DC 85C0测试eax,eax

100020DE 7553 jnz loc_10002133

100020E0 BFFCFFFFFF mov edi,0FFFFFFFCh

100020E5 EB49 jmp loc_10002130



100020E7 off_100020E7 :; Xref 10002198 1000219C

100020E7 8B4E04 mov ecx,[esi + 4]

100020EA 3BCB cmp ecx,ebx

100020EC 7507 jnz loc_100020F5

100020EE BFF7FFFFFF mov edi,0FFFFFFF7h

100020F3 EB3B jmp loc_10002130



100020F5 loc_100020F5 :; Xref 100020EC

100020F5 8B4528 mov eax,[ebp + 28h]

100020F8 50推eax>
100020F9 6800040000推400h

100020FE 52推edx

100020FF 8D55E0 lea edx,[ebp-20h]

10002102 52 push edx

10002103 8D45DC lea eax,[ ebp-24h]

10002106 50推eax

10002107 8B5518 mov edx,[ebp + 18h]

1000210A 52 push edx

1000210B 8B450C mov eax,[ebp + 0Ch]

1000210E 50 push eax

1000210F 8B5508 mov edx,[ebp + 8]

10002112 52推edx

10002113 8B4514 mov eax,[ebp + 14h]

10002116 50推eax

10002117 8B5510 mov edx,[ebp + 10h]

1000211A 52 push edx

1000211B E870240000 call fn_10004590

10002120 85C0 test eax,eax

10002122 750F jnz loc_10002133

10002124 BFFCFFFFFF mov edi,0FFFFFFFCh

10002129 EB05 jmp loc_10002130



1000212B loc_1000212B :; Xref 10002097

1000212B BFFEFFFFFF mov edi,0FFFFFFFEh

10002130 loc_10002130 :; Xref 100020AF 100020E5 100020F3 10002129

10002130 897DE4 mov [ebp-1Ch],edi

10002133 loc_10002133 :;外广系100020DE 10002122

10002133 83FF01 cmp edi,1

10002136 7526 jnz loc_1000215E

10002138 8B4DDC mov ecx,[ebp-24h]

1000213B 663BCB cmp cx,bx

1000213E 7508 jnz loc_10002148

10002140 BFFAFFFFFF mov edi,0FFFFFFFAh

10002145 897DE4 mov [ebp -1Ch],edi

10002148 loc_10002148 :; Xref 1000213E

10002148 8B451C mov eax,[ebp + 1Ch]

1000214B 3BC3 cmp eax,ebx

1000214D 7403 jz loc_10002152

1000214F 668908 mov [eax],cx

10002152 loc_10002152 :; Xref 1000214D

10002152 8B4520 mov eax,[ebp + 20h]

10002155 3BC3 cmp eax,ebx

10002157 7405 jz loc_1000215E

10002159 8B4DE0 mov ecx,[ebp-20h]

1000215C 8908 mov [eax],ecx

1000215E loc_1000215E :; Xref 10002136 10002157

1000215E C745FCFFFFFFFF mov dword ptr [ebp-4],0FFFFFFFFh

10002165 E81B000000 call fn_10002185

1000216A loc_1000216A :; Xref 10002069

1000216A 8BC7 mov eax,edi

1000216C 8B4DF0 mov ecx,[ebp-10h]

1000216F 64890D00000000 mov fs:[0] ,ecx

10002176 5F pop edi

10002177 5E pop esi

10002178 5B pop ebx

10002179 8BE5 mov esp ,ebp

1000217B 5D pop ebp

1000217C C22400 ret 24h



1000217F off_1000217F :;外广系1001E5C0

1000217F 8B75D8 mov esi,[ebp-28h]

10002182 8B7DE4 mov edi,[ebp-1Ch]



10002185 fn_10002185 :; Xref 10002165

10002185 8BB638020000 mov esi,[esi + 238h]

1000218B 56推esi

1000218C FF159CE20110呼叫dword ptr [ReleaseMutex]

10002192 C3 ret



10002193 90 nop

10002194 off_10002194 :; Xref 1000209D

10002194 A4200010 dd偏移off_100020A4

10002198 E7200010 dd偏移off_100020E7

1000219C E7200010 dd偏移off_100020E7

100021A0 A4200010 dd偏移off_100020A4



100021A4 CCCCCCCCCCCCCCCCCCCC .. db 12 dup(0CCh)



---- -------------------------------------------------- ----------------------------



感谢重播

i have this function in a dll ASM. My problem is how to call this function in vb or vb.net. I call others functions before, but this, the name contain "::", vb give me error name.

--------------------------------------------------------------------------------CFKViaDev::FV_ReadDataFromFK(long,long,void_*,unsigned_long,unsigned_long,unsigned_short_*,unsigned_long_*,unsigned_long,struct_HWND___*):
10002020 55 push ebp ; ?FV_ReadDataFromFK@CFKViaDev@@QAEJJJPAXKKPAGPAKKPAUHWND__@@@Z
10002021 8BEC mov ebp,esp
10002023 6AFF push 0FFFFFFFFh
10002025 68B8E50110 push offset off_1001E5B8
1000202A 689C8B0010 push offset off_10008B9C
1000202F 64A100000000 mov eax,fs:[0]
10002035 50 push eax
10002036 64892500000000 mov fs:[0],esp
1000203D 83EC18 sub esp,18h
10002040 53 push ebx
10002041 56 push esi
10002042 57 push edi
10002043 8BF1 mov esi,ecx
10002045 8975D8 mov [ebp-28h],esi
10002048 33DB xor ebx,ebx
1000204A 895DDC mov [ebp-24h],ebx
1000204D 895DE0 mov [ebp-20h],ebx
10002050 BF01000000 mov edi,1
10002055 897DE4 mov [ebp-1Ch],edi
10002058 8B8638020000 mov eax,[esi+238h]
1000205E 6AFF push 0FFFFFFFFh
10002060 50 push eax
10002061 FF158CE20110 call dword ptr [WaitForSingleObject]
10002067 85C0 test eax,eax
10002069 0F85FB000000 jne loc_1000216A
1000206F 895DFC mov [ebp-4],ebx
10002072 8B4520 mov eax,[ebp+20h]
10002075 3BC3 cmp eax,ebx
10002077 7405 jz loc_1000207E
10002079 8B00 mov eax,[eax]
1000207B 8945E0 mov [ebp-20h],eax
1000207E loc_1000207E: ; Xref 10002077
1000207E 8B5524 mov edx,[ebp+24h]
10002081 3BD3 cmp edx,ebx
10002083 7508 jnz loc_1000208D
10002085 BA28230000 mov edx,2328h
1000208A 895524 mov [ebp+24h],edx
1000208D loc_1000208D: ; Xref 10002083
1000208D 8B860C020000 mov eax,[esi+20Ch]
10002093 48 dec eax
10002094 83F803 cmp eax,3
10002097 0F878E000000 jnbe loc_1000212B
1000209D FF248594210010 jmp dword ptr [off_10002194+eax*4]

100020A4 off_100020A4: ; Xref 10002194 100021A0
100020A4 8B0E mov ecx,[esi]
100020A6 3BCB cmp ecx,ebx
100020A8 7507 jnz loc_100020B1
100020AA BFF7FFFFFF mov edi,0FFFFFFF7h
100020AF EB7F jmp loc_10002130

100020B1 loc_100020B1: ; Xref 100020A8
100020B1 8B4528 mov eax,[ebp+28h]
100020B4 50 push eax
100020B5 6800040000 push 400h
100020BA 52 push edx
100020BB 8D55E0 lea edx,[ebp-20h]
100020BE 52 push edx
100020BF 8D45DC lea eax,[ebp-24h]
100020C2 50 push eax
100020C3 8B5518 mov edx,[ebp+18h]
100020C6 52 push edx
100020C7 8B450C mov eax,[ebp+0Ch]
100020CA 50 push eax
100020CB 8B5508 mov edx,[ebp+8]
100020CE 52 push edx
100020CF 8B4514 mov eax,[ebp+14h]
100020D2 50 push eax
100020D3 8B5510 mov edx,[ebp+10h]
100020D6 52 push edx
100020D7 E884420000 call fn_10006360
100020DC 85C0 test eax,eax
100020DE 7553 jnz loc_10002133
100020E0 BFFCFFFFFF mov edi,0FFFFFFFCh
100020E5 EB49 jmp loc_10002130

100020E7 off_100020E7: ; Xref 10002198 1000219C
100020E7 8B4E04 mov ecx,[esi+4]
100020EA 3BCB cmp ecx,ebx
100020EC 7507 jnz loc_100020F5
100020EE BFF7FFFFFF mov edi,0FFFFFFF7h
100020F3 EB3B jmp loc_10002130

100020F5 loc_100020F5: ; Xref 100020EC
100020F5 8B4528 mov eax,[ebp+28h]
100020F8 50 push eax
100020F9 6800040000 push 400h
100020FE 52 push edx
100020FF 8D55E0 lea edx,[ebp-20h]
10002102 52 push edx
10002103 8D45DC lea eax,[ebp-24h]
10002106 50 push eax
10002107 8B5518 mov edx,[ebp+18h]
1000210A 52 push edx
1000210B 8B450C mov eax,[ebp+0Ch]
1000210E 50 push eax
1000210F 8B5508 mov edx,[ebp+8]
10002112 52 push edx
10002113 8B4514 mov eax,[ebp+14h]
10002116 50 push eax
10002117 8B5510 mov edx,[ebp+10h]
1000211A 52 push edx
1000211B E870240000 call fn_10004590
10002120 85C0 test eax,eax
10002122 750F jnz loc_10002133
10002124 BFFCFFFFFF mov edi,0FFFFFFFCh
10002129 EB05 jmp loc_10002130

1000212B loc_1000212B: ; Xref 10002097
1000212B BFFEFFFFFF mov edi,0FFFFFFFEh
10002130 loc_10002130: ; Xref 100020AF 100020E5 100020F3 10002129
10002130 897DE4 mov [ebp-1Ch],edi
10002133 loc_10002133: ; Xref 100020DE 10002122
10002133 83FF01 cmp edi,1
10002136 7526 jnz loc_1000215E
10002138 8B4DDC mov ecx,[ebp-24h]
1000213B 663BCB cmp cx,bx
1000213E 7508 jnz loc_10002148
10002140 BFFAFFFFFF mov edi,0FFFFFFFAh
10002145 897DE4 mov [ebp-1Ch],edi
10002148 loc_10002148: ; Xref 1000213E
10002148 8B451C mov eax,[ebp+1Ch]
1000214B 3BC3 cmp eax,ebx
1000214D 7403 jz loc_10002152
1000214F 668908 mov [eax],cx
10002152 loc_10002152: ; Xref 1000214D
10002152 8B4520 mov eax,[ebp+20h]
10002155 3BC3 cmp eax,ebx
10002157 7405 jz loc_1000215E
10002159 8B4DE0 mov ecx,[ebp-20h]
1000215C 8908 mov [eax],ecx
1000215E loc_1000215E: ; Xref 10002136 10002157
1000215E C745FCFFFFFFFF mov dword ptr [ebp-4],0FFFFFFFFh
10002165 E81B000000 call fn_10002185
1000216A loc_1000216A: ; Xref 10002069
1000216A 8BC7 mov eax,edi
1000216C 8B4DF0 mov ecx,[ebp-10h]
1000216F 64890D00000000 mov fs:[0],ecx
10002176 5F pop edi
10002177 5E pop esi
10002178 5B pop ebx
10002179 8BE5 mov esp,ebp
1000217B 5D pop ebp
1000217C C22400 ret 24h

1000217F off_1000217F: ; Xref 1001E5C0
1000217F 8B75D8 mov esi,[ebp-28h]
10002182 8B7DE4 mov edi,[ebp-1Ch]

10002185 fn_10002185: ; Xref 10002165
10002185 8BB638020000 mov esi,[esi+238h]
1000218B 56 push esi
1000218C FF159CE20110 call dword ptr [ReleaseMutex]
10002192 C3 ret

10002193 90 nop
10002194 off_10002194: ; Xref 1000209D
10002194 A4200010 dd offset off_100020A4
10002198 E7200010 dd offset off_100020E7
1000219C E7200010 dd offset off_100020E7
100021A0 A4200010 dd offset off_100020A4

100021A4 CCCCCCCCCCCCCCCCCCCC.. db 12 dup (0CCh)

----------------------------------------------------------------------------------

Thanks for replay

推荐答案

这不是汇编语言函数。



这是C ++类中方法的反汇编列表。



为了使其工作,必须通过COM公开库。没有它,你就有点搞砸了。你必须编写自己的C ++ COM包装库来获得这些方法。



首先要做的是找到关于库的更多信息以及它是否注册了自己作为COM库。
That's not an "assembly language function".

That's the disassembly listing of a method in a C++ class.

In order for this to work, the library has to be exposed via COM. Without that, you're kind of screwed. You'd have to write your own C++ COM wrapper library to get at these methods.

First this to do is find out more about the library and if it registers itself as a COM library.


这篇关于在VB或VB.NET中调用此ASM函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆