SKY外语计算机学习

标题: 全球首创? 挑战VB顶级极限,老汉用VB写驱动Hello VbDrv [打印本页]

作者: SKY定格    时间: 2012-5-24 12:12
标题: 全球首创? 挑战VB顶级极限,老汉用VB写驱动Hello VbDrv
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

某些大牛总是说VB不能搞底层,VB不能写驱动!那么请看...   老汉出品  
回复可见  另附件原扩展名为rar应上传限制改为gz
附件中有两个文件:
Project5.exe 为VB的EXE
Project5.sys VB驱动.
  1. Comparing files Project5.sys and PROJECT5.EXE
  2. 000000E0: 70 C4
  3. 000000E1: 08 03
  4. 00000108: 88 A0
  5. 00000110: 89 D6
  6. 00000111: 47 4F
  7. 00000114: 01 02
  8. 00000138: 00 E0
  9. 00000139: 00 0C
复制代码
EXE的那个不是驱动,只是显示一个函数的地址,这样好方便"动手术"
SYS的才是驱动,驱动要自己加载了
[attach]47[/attach]


作者: SKY定格    时间: 2012-5-24 12:14
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

1.首先遇到的第一个问题是,VB的msvbvm60.dll
这根拐杖不可能带到驱动里去,那么乍办呢,还好,VB还是可以扔掉拐杖的.
扔掉拐杖,告别微软件,站起来吧!VB!
解决方案1: 直接改PE的导入表,去掉这只拐杖
解决方案2: 移除 工程1.obj里面的引入表,这样VB就自己丢掉拐杖了,卖嘎滴!
2.接下来第二个问题是,没了msvbvm60,这下VB成了茄子了.VB的函数都不能用了
有个声音说"那我们可以用API啊",老汉道:"刚才那是谁?给我站出来"...没人?看来是人老耳鸣了.
任何delcare声明的winapi都不能用了,原因,vb天生自做聪明的总是在调用API后加个set dll err.
而这个函数正好都在那只拐杖里,没了拐杖那还不跌倒了? 会显示一个漂亮的(内存不能为read)
解决方案1: 不用API改用TLB
解决方案2: 改写同名的VB函数,保持参数和出栈的一致,最后编译后替换
3.接下来的第三个问题: VBDDK没有,只有C/C++的DDK
解决方案1: 重新翻译成VB的
解决方案2: 找个软件自动转换成VB的,肯定有错,需要人工修正(这个无奖励的苦力活由哪个呆子来干呢?)
解决方案3: ______(填空题 5分)


作者: SKY定格    时间: 2012-5-24 12:16
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

原创  vbgood老汉  


作者: sky7987    时间: 2012-5-24 12:51
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

看看   什么效果


作者: dowi    时间: 2012-5-24 13:04
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

十分感谢....看看的.


作者: kevinqq    时间: 2012-6-24 02:55
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

不能搞底层,VB不能写驱动!那


作者: SKY定格    时间: 2012-6-24 09:35
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

不能搞底层,VB不能写驱动!那[/quote]
看看那你就知道能不能了    高手的思路   我们凡人是不能理解的啦


作者: Ooshi001    时间: 2013-10-9 11:09
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

都是要回复的.


作者: moneywywl    时间: 2013-10-10 10:50
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

看看怎么样哦`!!!


作者: Jcr    时间: 2013-10-11 22:01
本帖最后由 sky_yx 于 2015-12-30 14:19 编辑

...........................






欢迎光临 SKY外语计算机学习 (http://www.skywj.com/) Powered by Discuz! X2.5