我将自己做的DLL改名为wsock32.dll后为何就不灵了(高手们都哪里去了?!!) (300分)

  • 主题发起人 brokensun
  • 开始时间
wsock32.dll肯定不是com,这点我确定。以前看过一个替换的例子,vc写的,没有试过<br>你试试看把原有的改革名字,就是不让系统调入那个wsock32.dll,试试看有没有这个问题
 
2000下怎么替换系统的wsock32.dll?<br><br>好像不好办呀!!
 
嘿嘿,真是不好意思,我是看到有人这样做了,说白了是个游戏的外挂,人家并没去动原来<br>的wsock32.dll呀,唉,看来此人不在此区
 
新年伊始啦,高手来坐坐啊~~~~~~~~
 
dll在被调用的时候会在内存中复制一个副本啊,这个你考虑到没有?<br>另外,如果你能用sofeice调试一下,看看他到底是先调用了哪一个
 
副本,有影响么?什么影响?<br>我在WIN2K,我那ICE不好用了,我是在loallibery时就出错了的,想来这不会是在调win的winsock,<br>不然别的程序怎么用啊?<br>拜托高手回答时要有意义,谢谢
 
兄弟们啊,来给个结论啊,不然我怎么送分啊
 
提供一点参考:<br>1。<br>wsock32.dll序数为111(6f)的函数名为:<br>wsaSetLastError<br>2。wsock32.dll绝对不是com<br>3.这类偏门问题一般得自己解决,然后写一篇心得拿出来共享
 
呵呵,看来是还是我没引用全,谢谢张鸿林,能不能给的帮助再多一点儿
 
在使用wsock32.dll时有的程序直接用序号定位其中的函数,不是用函数名<br>要保证自己的wsock32.dll中函数序号与系统的相同,用index指定<br>exports<br>&nbsp; somefunction index $xxx,<br>&nbsp; ...
 
to jps_exp:呵呵,您在灌水?
 
我这两天也做了一个,可以使程序正常工作,可以得到程序<br>发送的数据,不过修改数据还没测试,是用delphi自己的winsock.pas<br>基础上改的,大致是下面这样的<br><br>.............<br>function send(s: TSocket; Buf: PByte; len, flags: Integer): Integer; stdcall;<br>//自己Dll的导出函数<br>.............<br>function send_(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;<br>//从原wsock32.dll导入的函数<br>.............<br>implementation<br>const<br>&nbsp; winsocket = 'Swsock32.dll';//原wsock32.dll改名为Swsock32.dll复制到相同目录<br>..............<br>function send_; &nbsp;external &nbsp; &nbsp;winsocket name 'send';<br>................<br>function send(s: TSocket; Buf:pByte; len, flags: Integer): Integer; stdcall;<br>begin <br>&nbsp; MessageBox(0,PChar(buf),nil,0);<br>&nbsp; result := send_(s, buf^, len, flags);<br>end;<br>.................<br>
 
1、wsock32.dll不是com<br>2、自己写的dll可以改名位wsock32.dll,但凡调用该文件的肯定都会出错,你一定要做<br>到里面所有函数名参数都一样。<br>你把一个关于编程的text文件改名为性.txt,别人肯定会骂你的。<br>你也不会碰到一个与你同名字的人就说“这就是我”吧?<br>
 
hehe,应该是你现在的系统中的WSOCK32中没有你要调用的函数。
 
太恐怖了,替换这么重要的windows库,是不是搞木马程序啊.
 
真不好意思,是我的测试DLL用的Demo程序本身有问题,真太不好意思,谢谢大家<br>是想做木马(不过早就换了方式),见笑见笑
 
顶部