LoadLibrary("msvcrt.dll")在汇编中的表示,该如何处理
发布时间:2010-06-14 15:51:31 文章来源:www.iduyao.cn 采编人员:星星草
LoadLibrary("msvcrt.dll")在汇编中的表示
#include <WINDOWS.H>
#include <WINBASE.H>
void main()
{
__asm
{
push ebp;
mov ebp,esp;
sub esp,0x0c;
mov eax,0x6376736d;
mov [ebp-0x0c],eax;
mov eax,0x642e7472;
mov [ebp-0x08],eax;
mov eax,0x6c6c;
mov [ebp-0x04],eax;
xor edx,edx;
mov [ebp-0x02],dl;
lea eax,byte ptr [ebp-0x0c];
push eax;
mov ecx,0x77BE0000;
call ecx;
push ebp;
mov ebp,esp;
sub esp,0x0c;
mov eax,0x6d6d6f63
mov dword ptr [ebp-0x0c],eax
mov eax,0x2e646e61
mov dword ptr [ebp-0x08],eax
mov eax,0x6d6f63
mov dword ptr [ebp-0x04],eax
xor edx,edx
mov byte ptr [ebp-0x1],dl
lea eax,byte ptr [ebp-0x0c]
push eax
mov eax,0x77BF93C7;
call eax;
}
exit(0);
}
代码如上所示,xp sp2+vc6.0
call ecx时就报错......0xC0000005: Access Violation,,用的代码libHandle=LoadLibrary("msvcrt.dll")获得它的地址为0x77BE0000,是不是这里地址就已经错了?调试的时候发现这个地址的机器码都是??????.如果错了,那应该修改成什么.求高手,求大牛,求真相.
------解决方案--------------------
先输出测试下:
HANDLE libHandle=LoadLibrary("msvcrt.dll");
printf("0x%p\n" , libHandle );
printf("LoadLibrary:0x%p\n",LoadLibrary);
看代码的话,可以知道HANDLE libHandle=LoadLibrary("msvcrt.dll"); 拿到的是一个具体的句柄。
而不带参数则有点不同。具体也没仔细研究过。
楼主可以先参考下MSDN:http://msdn.microsoft.com/en-us/library/ms684175(VS.85).aspx
这是相关的参数问题:http://topic.csdn.net/u/20100723/16/1df65206-74d3-4150-83a3-ee4ef2f89d9f.html
------解决方案--------------------
你找到的地址不对,一些系统使用的是函数地址跳转表机制,所以你要找到真的那个地址而不是
跳转表里的地址的地址。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
MSN通讯协议逆向
MSN 进行数据通讯中,据说用了TWN认证,通过SSL/TLS连接到login.passport.com和 loginnet.passportr.com 等服务器。
...
-
win7+64位cpu的exe反汇编问题,多次问人,无果
vs20008写的一个很简单的c++控制台程序
平台是:win7 64位操作系统
用od进行反汇编,...
-
可能很白痴的问题:想给ax赋一个负数怎么做?
比如想要赋一个-5给ax,是不是只有求出这个-5的补码,然后mov进这个补码这一种方法?
------...
-
居然显示不出负数来,悲剧
Assembly code
.386
.model flat,stdcall
include kernel32.inc
includelib kernel32.lib
include ms...
-
call far ptr '标号'的问题[在线等答案]
为什么ax会是1010?不是1006??求详细解答
难道call far ptr不是执行了push cs,push ip,jm...
-
CPU的程序计数器PC和指令指针寄存器IP是一个东西吗?
看上去好像功能完全一样,又觉得不应该是一回事,求教
------解决方案----------...
-
菜鸟问题,高人来帮忙
编程,统计data段中数值为8的字节的个数,用ax保存结果
我的代码
Assembly code
assume cs:code,ds:data
data se...
-
一个死循环问题
什么原因造成内循环才刚循环一次还没完,到了loop s1的时候cx突然变成F?
Assembly code
assume cs:codesg,ds:datas...
-
初学MUL乘法指令,写法求解释下
MUL r8/m8 ;无符号字节乘:AX←AL×r8/m8
MUL r16/m16 ;无符号字乘:DX.AX←AX×r16/...
-
汇编如何 取到8051的P0口的内容呢?
Assembly code
ORG 0000H
AJMP START
ORG 0030H
START: MOV P0,#00H
LOOP: ...