在WINDOWS中如何读写内存?用VB可以吗?

TBBT 2000-02-17 11:00:00
如果要读写内存(如D000:0000),应该用何API函数?
...全文
416 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
TBBT 2001-10-12
  • 打赏
  • 举报
回复
COPYMEMORY只能是两个内存指针间的,我无法申请指向一个特定的内存地址的指针
lhbsh 2001-09-24
  • 打赏
  • 举报
回复
You can use api : CopyMemory to access memory directly.
wilddragon 2001-09-24
  • 打赏
  • 举报
回复
期待答案
Jneu 2001-09-24
  • 打赏
  • 举报
回复
GZ
TBBT 2001-09-24
  • 打赏
  • 举报
回复
up
sssa2000 2001-09-09
  • 打赏
  • 举报
回复
sdfdsfdsfds
TBBT 2001-09-09
  • 打赏
  • 举报
回复
还有高手吗?
wiw 2001-09-06
  • 打赏
  • 举报
回复
可以,好象在15期的电脑爱好者中用vb编写的一个游戏修改工具用了一个API函数来读写内存地址,好象以read 和 write开头的,如果你找到的话,也说来给我听听,我也忘了。
TBBT 2001-09-06
  • 打赏
  • 举报
回复
up
TBBT 2001-09-06
  • 打赏
  • 举报
回复
今年的?
damuge2000 2001-09-04
  • 打赏
  • 举报
回复
不知道哪里给分,先说声谢谢了
damuge2000 2001-09-03
  • 打赏
  • 举报
回复
TBBT朋友,能否把你的那个dll发给我一份,我要直接对一块卡进行读和写
谢了
mailto: walkback@163.net
TBBT 2001-08-18
  • 打赏
  • 举报
回复
up
TBBT 2001-08-18
  • 打赏
  • 举报
回复
基本上:

我要访问绝对地址,因为是对板卡上的板载存储器进行读写。
TBBT 2001-08-18
  • 打赏
  • 举报
回复
我有个台湾人编的DLL,通过她可以访问绝对地址及很多的功能,象USB,LPT等。

想看看吗?
songyangk 2001-08-16
  • 打赏
  • 举报
回复
晕~~ 去睡眠 ~~
songyangk 2001-08-16
  • 打赏
  • 举报
回复
收到了吗?怎么这么久没反应?
songyangk 2001-08-16
  • 打赏
  • 举报
回复
先说明一下,在Windows下不可以读写绝对地址,想对内存读写只能对进程的内存进行读写,我的例程没有做完,大概意思是先列出当前所有进程,选择一个进程后再得到它的基地址,之后用ReadProcessMemory函数来读取它的内存。写就是个相反的过程,但我的程序里写的部分还没有做。你自己看看吧。有问题再联系。
TBBT 2001-08-16
  • 打赏
  • 举报
回复
先谢了。

能用的话,一定给分!^_^
songyangk 2001-08-16
  • 打赏
  • 举报
回复
帮你找一下我以前做的例程。
加载更多回复(10)
1,mruxdzip.exe
在菜单上最近打开文件的历史记录控件(1453KB)
2,applogger.zip
具有删除到回收站、读写 INI 文件、计算剩余磁盘空间,复制文件和添加到 Windows 文档列表(57KB)
3,ccrpbd10.zip
Windows 游览对话框控件(75KB)
4,ccrpdrg.zip
增强了的列表框控件(71KB)
5,ccrpfd.zip
Windows 文件对话框控件,功能强劲,可制作出 VB 的文件对话框(95KB)
6,ccrphky.zip
键盘控件(69KB)
7,ccrpprg.zip
进程杆控件(150KB)
8,ctlist.exe
一个增强的 ListView 控件(376KB)
9,ctlistbar.exe
Microsoft Outlook 风格的列表框控件(287KB)
10,cttree.exe
一个增强的 TreeView 控件(424KB)
11,dprogressw.exe
DameWare 公司出品进程杆控件(177KB)
12,proplistw.exe
DameWare公司出品类似 VB 的属性列表控件(291KB)
13,buttnbar6.zip
Outlook 列表框控件(700KB)
14,fsi.zip
系统信息控件(24KB)
15,fsshr20d.exe
应用程序交换数据控件,不需要使用 DDE,COM 和剪贴板(289KB)
16,gbarocx.zip
进程杆控件(171KB)
17,graphic.zip
不需要调用 API ,创建一个 Office Ani 精灵助手(50KB)
18,ctlbar.ZIP
用过Oicq的用户,一定熟悉这个控件(59KB)
19,big2gb.zip
一个BIG5码<=>GB码互换的完全免费的ActiveX控件(81KB)
20,capscreen.zip
这是一个屏幕拷贝的控件,可以实现全屏的拷贝并支持另存为位图类型的文件 (28KB)
21,digital.zip
能够以液晶字体方式显示数字的一个小控件(15KB)
22,eqpro.zip
一个调整系统音量的控件,控制音量包括;很方便地控制,控件也很小巧(15KB)
23,flatbar.zip
一个工具栏控件,可变VB5.0的工具栏为Office或IE类型的平面工具栏(27KB)
24,lyftools.zip
这是一个封装了500多个Windows API的控件(229KB)
25,masflc.zip
一个用来播放 FLC,FLI 的 3DS 动画格式控件(60KB)
26,xzipdemo.zip
Xceed Zip控件 (98KB)
27,lfbb.zip
兰花打印控件(预览及打印输出,它支持多列,文本自动换行,页头和页尾,表格及段落)(186KB)
28,keyboard.zip
检测键盘按键控件(13KB)
29,winapi.zip
这是一个封装了部分Windows API的控件(例如:发EMail、改变分辨率等)(92KB)
30,dbdemo.zip
3D立体按钮控件(138KB)
31,spelltxt.zip
一个文档拼音检查的控件(337KB)
32,swflash.zip
播放的Flash文件的控件(160KB)
33,185.zip
EasySound 一个封装了DirectSound API的控件 (565KB)
34,157.zip
子分类控件,包含控件源码(44KB)
35,132.zip
MikoUtil系列控件(184KB)
36,109.zip
GB-Big5语言编码转换的控件源码(39KB)
37,108.zip
微软的DirectX 7 for VB开发库文件(187KB)
38,11.zip
MsgHook 用于子分类、截获消息的控件(147KB)
39,c1.zip
Windows 9x注册表控件(35KB)
40,c8.zip
只要点击就可以打开超连接的控件(10KB)
41,c9.zip
GIF98(24KB)
42,c10.zip
sysmenu(9KB)
43,c11.zip
小型控件集(40KB)
44,c12.zip
anigif(40KB)
45,cst.zip
圆盘仪表控件 V3.1(4143KB)
46,EZX.zip
让你能在VB使用DirectX的控件,附例子和源代码(1619KB)
47,NCTDesignBox.exe
NCTDesignBox 1.01(513KB)
48,c_arp.zip
Activereport 1.1的破解文件(1KB)
49,clock.zip
显示时间和日期信息控件(5KB)
50,InputeDate.zip
日期输入框控件(13KB)
51,api21.zip
封装了500多个Windows API的控件,覆盖了网络、系统、界面、多媒体、图形、文字等各个方面(261KB)
52,ARRegistry.zip
访问系统注册表的控件(25KB)
53,isysinfo.zip
是一个可以获得系统信息的ActiveX控件,该控件是由VB5.0编写,使用这个控件可以获得系统的内存大小、CPU类型、显示器的分辩率、颜色数系统各个驱动器、CPU占用率、Windows版本等信息 (19KB)
54,MsgHoo32.zip
同样是Windows消息处理控件(22KB)
55,MsgBlst32.zip
这是一个拦截、处理消息的控件(18KB)
56,threed32.zip
一个3D控件(73KB)
57,vfoutbar.zip
这里还有另一个控件 OutLook 风格的 BAR(39KB)
58,ovalbutton.zip
椭圆形按钮控件(8KB)
59,3dbdemo.zip
3D立体按钮控件(138KB)
60,tubPrinter.zip
可直接打印DataGrid,ListView,MsFlexGrid(53KB)
61,shape.zip
椭圆、三角、星...形按钮控件(131KB)
62,command.zip
千千平面按钮(35KB)
63,Chat.zip
Chat控件(16KB)
前言 从Windows出现开始,汇编语言似乎在慢慢地销声匿迹,但本书可以让人放弃这个观点,其实在Win32环境下,汇编语言依然强大。 Why——为什么选择Win32汇编 选择Win32汇编的理由是什么呢? 在DOS时代,学习汇编就是学习系统底层编程的代名词,仅要成为一名入门级的汇编程序员,就需要学习从CPU结构、CPU工作方式、各种硬件的编程方法到DOS工作方式等范围很广的知识。随着Windows时代的到来,Windows像一堵巨大的墙,把我们和计算机的硬件隔离开。对于DOS的汇编程序员来说,就像在一夜之间,我们发现自己曾经学过的几乎所有的东西都被Windows封装到内核去了,由于保护模式的存在,我们又无法像在DOS下那样闯入系统内核为所欲为。在Windows下用任何语言编程都必须遵循Windows的规范,汇编也不例外,也就是说,汇编不再是一种“有特权”的语言。面对汹涌而来的Visual C++,Visual Basic,PowerBuilder和Java等各个领域的猛将,从DOS时代“为所欲为”的“系统警察”岗位下岗,在其他领域又没有一技之长,汇编语言似乎失去了生存的意义,有很多人在DOS转向Windows的时候放弃了汇编语言。 但是经过短暂的失落,摆正了自己在系统的位置,我们发现从“系统警察”转换到遵循Windows规范的“好市民”后,汇编语言又慢慢地在这个世界流行起来了。毕竟,不能为所欲为也可以有好的一面,我们可以不必再考虑一些老大难的问题,如程序运行时会面对什么样的显示卡,如何驱动不同的打印机,内存不够了如何用磁盘交换,等等。我们也可以在了解更少硬件知识的情况下就可以掌握Win32的汇编编程。而且,我们惊喜地发现,做了“好市民”以后,我们反而拥有了和其他语言同样的权利——为了做图形和界面等方面的功能,汇编程序员在DOS时代连做梦都在羡慕C语言庞大的函数库,而现在,Windows为我们提供了比这还要多得多的函数,以至于其他大部分语言可以做出来的功能,汇编都可以做,而其他语言做不到的功能,汇编照样可以做!所以这就是理由之一:Win32汇编可以当做一种功能强大的开发语言使用,使用它完全可以开发出大型的软件来。 正因为Win32汇编看上去不再那样低级,于是有读者曾经提出:Win32汇编讲的都是用API来写程序,和高级语言差不多,以前在DOS下使用的断什么的都不能用,所以没有什么新奇的了。还有读者认为本书只不过是MSDN的汇编版本而已。言下之意就是:学汇编就是为了了解高级语言底下一层的功能,但现在Win32汇编却使用和C++等语言相同的API接口,既然和高级语言处于同一个级别,我们为什么还要去和机器指令打交道呢,还不如去学Visual C++方便。 但是我们可以这样问一问自己: 问:在DOS汇编我们为什么用断功能? 答:为了使用DOS内核提供的功能。 问:在DOS我们常常自己用操作I/O端口的方法读写硬盘或操作显卡吗? 答:不,我们用系统提供的int 13h和int 10h。 …… 同样,在Win32汇编里使用API也是为了使用Windows内核提供的功能。只不过使用的方式不再是断方式而已,这不是Win32汇编语言“高级化”了,而是高级语言因为使用Windows的API接口而“低级化”了,其代价就是无法移植到其他系统,用Visual C++写的程序是无法移植到其他操作系统平台上的,只有和平台无关的ANSI C++等才能算是真正意义上的高级语言。 其实,任何汇编语言都是和操作系统密切相关的,不管是DOS汇编、Win32汇编,还是Linux汇编,都是基于特定的操作系统的,如果一定要绕过操作系统,那么就不会有DOS汇编和Win32汇编的区别了,但是这样的话我们不是在学汇编,而是在自己开发操作系统。高级语言在不同的操作系统上看起来都差不多,但作为一种低级语言,不同操作系统上的汇编就是不同的世界。所以,既然Windows和DOS是两个完全不同的操作系统,我们就必须抛弃DOS汇编的大部分概念从头开始学习Win32汇编。这就是理由之二:Win32汇编是Windows环境下一种全新的编程语言。 Win32环境下的很多高级语言,如Visual C++和Visual Basic等,一如既往地对实现的细节进行了或深或浅的封装,就连最能表现Windows特征的部分,如消息循环和多线程的处理等内容也都被隐藏封装,使我们在使用它们进行可视化编程的同时,无法全面了解Win32程序运行的具体方式。在学习Win32汇编以后,这些隐藏在高级语言后面的细节就暴露出来了。 由于封装的关系,各种高级语言或多或少存在某种“缺陷”,比如VB不支持指针,结果很多需要使用指针的API用起来就很不方便,像多线程一类的特征在VB就无法实现,PowerBuilder也是如此;C语言已经是最灵活的高级语言了,但还是无法在代码级别处理某些需求;而汇编语言见到的是一个最真实的操作系统,它可以用最灵活的方式使用各种系统功能,第13章有关进程隐藏的内容就是最好的写照。所以理由之三就是:使用Win32汇编语言是了解操作系统运行细节的最佳方式。 最后的理由根本不是理由,而是必然的选择,当我们在Windows环境下进行加密解密、逆向工程,还有病毒、木马等有害代码的分析和防治工作时,Win32汇编是唯一的选择。在任何讨论这方面内容的书籍,汇编代码的篇幅总是很大的。因此,要想深入了解这些内容的前提就是深入汇编编程。 How——如何学习Win32汇编 以往的汇编书籍往往把重点放在硬件结构和指令上,讲述了一大堆电路框图和指令列表,把大家搞得晕晕乎乎后,再举出一些重量级的例子,不是一些像数组、矩阵计算一类的复杂运算,就是开始图形模式画图,以至于大家看完以后就再也找不到北了!实际上,这些例子不是太难了,而是太枯燥了。有人说,学汇编就像考大学,千军万马过独木桥,太多的人途放弃了,只有少数人坚持到最后。 笔者认为:学习汇编应该在轻松的环境下进行,在学习使用的例子不一定太复杂,但一定要有吸引力。用汇编写复杂的运算程序固然会比C更有效率,但同样的事在C用一个表达式就全部搞定了,从这里开始学汇编,给人的感觉就像从复杂的公式开始学算术,要知道,加法还没有学会呢!而对于高级语言封装起来的系统功能,用汇编解释起来就非常直接,非常自然,也更容易懂。以笔者自己学汇编的过程来说,那时候是1990年,刚好是国第一次病毒大流行,大家的计算机上都是那个病毒的开山鼻祖——乒乓病毒,在流行DOS的时期,看着在屏幕上蹦的小球,心就有一个问题:如何编出这样一个玩意来呢?要知道DOS是单任务的,而那个球在别的程序运行的时候照样蹦!这用当时流行的FORTRAN、C等课程学到的任何知识都无法解释,因为这些课程不可能有TSR、断、引导区等内容。带着这样一个疑问学习汇编,在分析乒乓病毒的过程啃一条条不懂的指令,病毒分析完了,汇编课也学完了,而且反过来看那些复杂的计算程序都是那么顺理成章,不攻自破了。实际上,从一些实用的系统功能开始学习汇编远比学矩阵计算容易理解。 正如最经典的C程序就是那个“Hello,World!”一样,这个程序的有名并不是因为它用高深复杂的语句放倒了一大批人,而是它以最简单易懂的方式让人们走入C语言的大门。对于Win32汇编也是如此,从最简单的例子开始总是没错的,笔者建议读者跟随本书从简到繁的例子,努力做到理解并灵活引用这些例子的各种功能,正如“熟读唐诗三百首,不会写诗也会吟”,最后能够熟练地使用Win32汇编来解决各种编程需求就是最大的胜利。 另外,正如前面讲到的,汇编语言的学习必须和操作系统紧密结合。经过简单的调查,笔者发现很多高校使用的汇编教程还是停留在清华91版《IBM-PC汇编语言程序设计》之类的教材上,虽然这些教材基础知识部分永远不会过时,但涉及操作系统的部分还是停留在DOS阶段。随着DOS操作系统的悄然引退,继续把精力花在上面是一种浪费,因为任何语言都必须有应用的平台,否则课程学完之后会尴尬地发现没有地方可以应用。笔者认为,在《IBM-PC汇编语言程序设计》之类传统教材的基础部分学习完毕以后,重点就应该转向Win32汇编,以及保护模式方面的知识。 关于本书的内容 本书尝试从编写应用程序的角度,从“Hello,World”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个从简单到复杂的例子,逐步深入Win32汇编编程的方方面面。笔者从事汇编编程已经有十几年的历史了,从8086时代的DOS汇编编程开始到当前的Win32汇编编程,从一个初学者到现在能利用Win32汇编来解决大部分编程需求,间也经过了很长时间的摸索和大量的挫折,所以笔者很清楚初学者在哪些地方会遇到问题,但是涉及Win32汇编的书籍却实在太少了。正是因为如此,笔者决心把本书的目标定为:能让读者入门并在最后能熟练掌握Win32汇编编程,而不是那种深入系统奥秘一类的书籍。 从这个目标出发,本书的选材尽量去掉已经有其他书籍详细讨论的部分,因为要一本书涉及全部方面是不现实的。内容全面就必然不精,内容深刻就必须围绕一个心点,所以本书的内容并不详细讨论一般汇编教材的基础部分,如处理器结构和保护模式等,也不准备涉及Windows驱动程序、COM编程或者其他能够冠以“密技”头衔的内容。本书主要的内容将放在32位宏汇编对比DOS汇编所不同的部分,以及Win32应用程序的汇编实现上。不求全面,只求精也!(说句老实话,也不敢对自己不精通的地方妄加评论,以免破坏自己的良好形象。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧