首页
社区
课程
招聘
[求助]自己写api出错给看看啊
发表于: 2016-7-1 03:35 5033

[求助]自己写api出错给看看啊

2016-7-1 03:35
5033
自己用sysent实现openprocess返回3e6是什么错误啊,哪位大神告诉我啊

                .386
                .model flat, stdcall
                option casemap :none

include                windows.inc
include                user32.inc
includelib        user32.lib
include                kernel32.inc
includelib        kernel32.lib

                .data?
lpLoadLibrary        dd        ?
lpGetProcAddress dd        ?
lpGetModuleHandle dd        ?
dwProcessID        dd        ?
dwThreadID        dd        ?
hProcess        dd        ?
lpRemoteCode        dd        ?
hd1                dd        ?
                .const

szErrOpen        db        '无法打开远程线程!',0
szDesktopClass        db        'Progman',0
szDesktopWindow        db        'My first Window !',0

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                .code
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_openprc        proc @4,@2,@3
                                   
sub esp,20h
mov eax,dword ptr [ebp+10h]
mov dword ptr [ebp-8h],eax
mov eax,dword ptr [ebp+0Ch]
push esi
xor esi,esi
neg eax                                              
sbb eax,eax
and eax,00000002
mov dword ptr [ebp-14h],eax
lea eax,[ebp-8h]
push eax
lea eax,[ebp-20h]
push eax
push dword ptr [ebp+8h]
lea eax,[ebp+10h]
push eax
mov dword ptr [ebp-4h],esi
mov dword ptr [ebp-20h],18h
mov dword ptr [ebp-1Ch],esi
mov dword ptr [ebp-18h],esi
mov dword ptr [ebp-10h],esi
mov dword ptr [ebp-0Ch],esi
push        @1
mov        edx,esp
mov        eax,7Ah
db        0fh
db        34h
@1:
pop        esi
mov        eax,dword ptr [ebp+10h]
leave
ret        10h
_openprc        endp
start:
               
                invoke        FindWindow,NULL,addr szDesktopWindow
                invoke        GetWindowThreadProcessId,eax,addr hd1
                push        hd1
                push        0
                push        1ff0fffh
                call        _openprc
               
               
                .if        !eax
                        mov        hd1,eax
                        invoke  TerminateProcess,hd1,0
                        invoke        CloseHandle,hd1
                .else
                        invoke        MessageBox,NULL,addr szErrOpen,NULL,MB_OK or MB_ICONWARNING
                .endif
                invoke        ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
                end        start
代码 开始都是自己写不行又照抄的还是一样的错误 sysent返回eax应该是0但是老是返回c0000005

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
结贴 问题解决
2016-7-7 10:24
0
游客
登录 | 注册 方可回帖
返回