| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 510 人关注过本帖
标题:兄台们,帮忙看下这个程序为什么printf 不起作用了
取消只看楼主 加入收藏
zhu224039
Rank: 8Rank: 8
等 级:贵宾
威 望:17
帖 子:862
专家分:792
注 册:2012-7-29
结帖率:59.52%
收藏
已结贴  问题点数:18 回复次数:0 
兄台们,帮忙看下这个程序为什么printf 不起作用了
程序代码:
#include "windows.h"
#include <stdio.h>
#include "stdlib.h"
void main(){
  int a=1;
_asm{
     mov esi,[ebp+24]              //因为在调用main函数的时候 是creatprocess 函数建立进程,利用这个栈的地址来取得creatprocess进程的地址,也就是DLL的地址空间了
     and esi,0xffff0000            //页对齐
mmm: cmp dword ptr [esi],0x4d5a    //比对MZ标志 用这个判定是否DLL文件的开始基地址
     jz  xxx   
     sub esi,0x1000                 //以页为单位进行搜索
     jmp mmm
xxx: mov [ebp-4],esi                //将寻到的基地址值给变量a
    }
printf("%d",a);
}



Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
The thread 0x670 has exited with code 2 (0x2).
这个是神马意思嘛
找不到kernel32.DLL 还退出线程 ID 0X670?  code 说的是错误代码号?

步进后就直接错误
First-chance exception in c.exe: 0xC0000005: Access Violation.
说数据保护  不让比较 这个地址有问题吗 ?

奶奶的,至从学了缓冲和反汇编后,我编程成功率就低了很多

各种乱

[ 本帖最后由 zhu224039 于 2012-12-11 18:22 编辑 ]
2012-12-11 18:14
快速回复:兄台们,帮忙看下这个程序为什么printf 不起作用了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046800 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved