能力值:
( LV2,RANK:10 )
|
-
-
2 楼
动态调试
看看 push 进去什么东西
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
我手头的程序是DLL没有加密.EXE程序加密了.而且调试不了.我想不用他的EXE.自己写.但是这样就要知道这些输出函数的结构.
我用IDA反汇编了一下.帖一个函数出来.你帮我看看行不?
1000247B align 10h
10002480 ; Exported entry 40. FWDriverQweryProtocols
100024801
10002480 ; int __cdecl FWDriverQweryProtocols(LPVOID lpOutBuffer)
10002480 public FWDriverQweryProtocols
10002480 FWDriverQweryProtocols proc near
10002480
10002480 BytesReturned = dword ptr -1E0h
10002480 InBuffer = dword ptr -1DCh
10002480 lpOutBuffer = dword ptr 4
10002480
10002480 mov eax, hDevice
10002485 sub esp, 1E0h
1000248B cmp eax, 0FFFFFFFFh
1000248E jz short loc_100024F2
10002490 mov eax, dword_1000589C
10002495 mov ecx, dword_100055D0
1000249B cmp eax, ecx
1000249D jnb short loc_100024F2
1000249F cmp dword_100058A4, 6
100024A6 jnb short loc_100024F2
100024A8 lea ecx, [esp+1E0h+InBuffer]
100024AC push ecx
100024AD call sub_10001100
100024B2 mov eax, [esp+1E4h+lpOutBuffer]
100024B9 add esp, 4
100024BC lea edx, [esp+1E0h+BytesReturned]
100024C0 lea ecx, [esp+1E0h+InBuffer]
100024C4 push 0 ; lpOverlapped
100024C6 push edx ; lpBytesReturned
100024C7 mov edx, hDevice
100024CD push 16Ch ; nOutBufferSize
100024D2 push eax ; lpOutBuffer
100024D3 push 1DCh ; nInBufferSize
100024D8 push ecx ; lpInBuffer
100024D9 push 8000002Ch ; dwIoControlCode
100024DE push edx ; hDevice
100024DF call ds:DeviceIoControl
100024E5 neg al
100024E7 sbb eax, eax
100024E9 neg eax
100024EB add esp, 1E0h
100024F1 retn
100024F2
100024F2 loc_100024F2: ; CODE XREF: FWDriverQweryProtocols+Ej
100024F2 ; FWDriverQweryProtocols+1Dj ...
100024F2 xor eax, eax
100024F4 add esp, 1E0h
100024FA retn
100024FA FWDriverQweryProtocols endp
|
|
|