原贴:
http://community.csdn.net/Expert/topic/4883/4883617.xml?temp=.5169641
今天又读了读WINDOWS核心编程,有所感悟啊,不过还不行,得继续,VB真的不能写一个DLL去HOOK别人吗?想讨论讨论。。不过我现在的知识还停留在入门阶段,哈哈。。先不讨论了,再学学再说。继续用其他语言开发DLL供VB调用以截获指定进程封包问题~!~昨天开的帖子一激动开成20了,结了重新开。

解决方案 »

  1.   

    hook api的事情还是可以做的
    至于dll的话需要一些处理
    http://210.33.91.106/cy_filesxxx/vbsrc/VBAPIHooker.rar
      

  2.   

    我当时的设想是这样
    把那个东西做成ocx,有数据的时候触发一个Event给你,就象winsock一样但是不知怎么的,就是没有办法把截取的数据外传,非常的奇怪!!!!!!
      

  3.   

    哇塞,OCX直接太舒服了。。数据外传还是得用按值传递吧好象按址不大行
      

  4.   

    惊动斑竹了。。:)supergreenbean(超级绿豆(MSMVP - VB) - 今天你穿短袖了么?)
    老大,你的代码我看了,简直。看见了春天一样。。呵呵,奉为经典!!看来我现在的水平只停留在“背课本”阶段啊,强烈需要仔细研究核心编程!强烈需要仔细研究WINDOWS深度历险!!哭了,这一个简单的读读就得个把月,哈哈,仔细研究,半年不干别的,但是我还得当老师啊,看来这个HOOK封包现在还是要寄托于各位高手了,特别是二位啊!
    绿豆老大能推荐本VB比较深入研究核心的书吗?说实在的,学了10来年了,都是没事弄弄,没事捣鼓捣鼓,现在当个高中老师,没想到哇,兴趣突然上来这么多。。呵呵不怕大伙笑话,我的水平连VB自带的那些控件是干什么的都不知道,用到VB函数的时候经常去查,API更别提了,没几个会用的,都是现看现搬研究这个问题对我来说确实是不知道天高地厚了,不过兴趣所至,么办法了,前些天雪貂给的消息拦截还没怎么研究呢,这些天一直捣鼓这个了
    现在有些茫然
      

  5.   

    哎,一激动,说的有点谦虚了,哈哈,其实比较常见的东东偶还是比入门的强一点啦,自认为已经入了门了。HOOK确实才接触不久,以前只看人家说VB不干这事不大行,现在就不信这个邪了,继续研究水平不够提高水平也要上!!!
      

  6.   

    哈哈,我不是当计算机老师,高中化学老师而已
    绿豆的代码看着都眼热,哈哈,问个有关的问题我挂接了游戏的WSOCK32.DLL的RECV函数,然后当接收到信息的时候,堆栈信息中是否包含了接收到的数据内容呢。。
    堆栈情况:
    02 02 00 00 A4 2A 5A 04 
    A0 2A 5A 04 00 00 00 00 
    F4 FB D4 04 01 00 00 00 
    63 16 00 00 A0 2A 5A 04 
    1B FC D4 04 80 06 00 00 
    1B FC D4 04 01 00 00 00 
    02 00 00 00 A4 2A 5A 04 
    1F E2 F7 77 F0 DB 5A 04 
    48 FC D4 04 A0 2A 5A 04 
    00 00 00 00 C2 B6 18 76 
    F8 A6 1E 76 F8 A6 1E 76 
    F0 DB 5A 04 84 DC 5A 04 
    FE 63 16 00 30 DC 5A 04 
    3C DC 5A 04 A0 2A 5A 04 
    DC FF D4 04 04 A7 1E 76 
    B7 18 17 76 00 00 00 00参数堆栈情况:
    00000680 04D4FC1B 00000001 00000002 
    045A2AA4 77F7E21F 045ADBF0 04D4FC48 
    045A2AA0 00000000 7618B6C2 761EA6F8 
    761EA6F8 045ADBF0 045ADC84 001663FEEAX值:
    04D4FC1BECX值:
    045A2AA0EDX值:
    00001663EBX值:
    00000001ESP值:
    04D4FBF4EBP值:
    00000000ESI值:
    045A2AA0EDI值:
    045A2AA4EFLAGS值:
    00000202函数返回地址:
    7618B5C8。以上部分基本不懂啊,哈哈,堆栈没学过,就是听说而已,
      

  7.   

    偶程序只是个使用方法的演示而已你要拦截的话要在BeforeAction事件里面进行处理现在世面上的好VB6的书基本上看不怎么到了,你还是在网上找资料的好,及省钱又有针对性,呵呵
      

  8.   

    00000680 04D4FC1B 00000001 00000002 int recv(
      SOCKET s,       
      char FAR *buf,  
      int len,        
      int flags       
    );s = 680 buf=4d4fc1b(局部变量), len=1, flags=2=MSG_PEEK
    buf[0] = 0 = [4d4fc1b]
      

  9.   

    好的,哈哈,那后天我搜搜,明天值班,5:00起床,看代码一看就看过点了,再不睡觉我废掉了,,,,呵呵HOHO~~~~
    问斑竹老大一个问题怎么捐赠可用分啊,捐赠的时候少的是什么东东?我的可用分还是不够给加到500的有点纳闷呢。。那天VirtualDesktop(吴滂) 兄捐赠给了我300,我也想学学,哈哈,然后要点分好实现诺言,完成这个程序给500分。
      

  10.   

    豆子,你知不知道有什么办法可以让VB的Hook在一段机器码里运行,并把消息传出来呢?偶现在在研究编译器,想写一个像Java那样的,完全基于类的Basic.我看VB的IDE和Debug挺方便的,想就用VB重写一个ClassBasic.
    '---------------
    楼主,不好意思,说了一些和主题不相干的话.呵呵,最近,公司的机子坏了,上不了网,只能在家里上上网,不过,CSDN好像越来越不好玩了.
      

  11.   

    lz我给你那个改进的bcb代码不是可以直接显示消息明文的么?
      

  12.   

    恩,可以显示十六进制代码啊。绿豆这个代码是不是也可以呢,我明天有时间,一定要好好看看,改改,我不是想拿一个软件来分析封包啊,而是要对封包编程如果只是分析WPE就很好了。。呵呵,开始的帖子不是也说了,我们是弄一个DLL给VB调用啊
      

  13.   

    int recv(
      SOCKET s,       
      char FAR *buf,  
      int len,        
      int flags       
    );
       s,    FAR *buf,  len,    flags       
    参数堆栈情况:
    000000D8 019FD2A8 0000000C 00000000 
    73D4A202 019FD2A8 0000000C 00000000 
    004773A0 0012FC50 00454DDB 019FD2A8 
    0000000C 00000000 0000000C 004773A0那也就是说,我把这个堆栈情况里面的第2组数据作为内存拷贝的起点,复制长度为第3个参数就可以得到整个发送的数据了吗?
    可是一共 四组呢。。是不是每次调用这个API就会得到一个数据包的内容呢。。还是我需要在这四组数据里面怎么处理啊。。迷糊中
      

  14.   

    调用 .GetArguments alArgs(), 4 就可以把  s,    FAR *buf,  len,    flags 四个参数值依次保存到alArgs(0)-alArgs(3)中,即
    s=alArgs(0)
    buf=alArgs(1)
    len=alArgs(2)
    flags=alArgs(3)
    所以,要获得封包内容,只要再这样就可以了
    ReDim b(alArgs(2)-1) As Byte
    .Pmemcpy2local VarPtr(b(0)),alArgs(1),alArgs(2)现在数组b里就是封包内容了
      

  15.   

    恩。改的差不多了,就差封包解密了,但是有一个问题
    代码我修改以后,在HOOK RECV函数的时候偶尔目标进程会停止相应。。我主要修改了这些部分,
    定义了一个变量,表示函数是否完成,如果没完成不可以撤消钩子Private mAA As BooleanPrivate Sub m_oExpHooker_BeforeAction(ByVal lHookID As Long, ByVal lHookType As Long, ByVal sAPIName As String, ByVal lpArgs As Long, fBlock As Boolean, lArgCount As Long, ByVal lReturnAddress As Long)    mAA = False
        '*******************************
        Dim alArgsEx() As Long
        Dim mBuff() As Byte
        Dim mIndex As Long
        '*******************************
        With m_oExpHooker
    '        .DumpStack abDumpData(), 128
    '        .GetArguments alArgs(), 16
            '******************************************
            .GetArguments alArgsEx(), 4
            If alArgsEx(2) = 20 Then
            ReDim mBuff(alArgsEx(2) - 1) As Byte
            .Pmemcpy2local VarPtr(mBuff(0)), alArgsEx(1), alArgsEx(2)
            If CLng(mBuff(4)) = 1 Then
            Text2.Text = Text2.Text & "==============================================" & vbCrLf
            For mIndex = 0 To UBound(mBuff)
                Text2.Text = Text2.Text & Right$("0" & Hex(mBuff(mIndex)), 2) & " "
            Next
            Text2.Text = Text2.Text & vbCrLf
            Text2.SelStart = Len(Text2.Text)
            End If
            End If
        End With
    End SubPrivate Sub m_oExpHooker_AfterAction(ByVal lHookID As Long, ByVal lHookType As Long, ByVal sAPIName As String, ByVal fIntercepted As Boolean, lRetValue As Long)
        mAA = True
    End Sub
    Private Sub mnuUnhook2_Click()
    Do
    If mAA Then
        With lvExportList.SelectedItem
            .SmallIcon = 0
            With .ListSubItems(1)
                .ForeColor = 0
                .Bold = False
            End With
            If .Tag > -1 Then
                If m_oExpHooker.Unhook(.Tag) Then
                    .Tag = ""
                    MsgBox "钩子卸载成功!"
                    
                Else
                    MsgBox "钩子卸载失败!"
                End If
            End If
        End With
        lvExportList.Refresh
    Exit Do
    End If
    DoEvents
    Loop
    End Sub
    Private Sub Text2_DblClick()
    Text2.Text = ""
    End SubPrivate Sub Timer1_Timer()
        If GetProcEntries(m_atProcEntries) Then
            FillProcList m_atProcEntries()
        End If
    End Sub
    Private Sub Form_Load()    Call AquireDebugToken    Set m_oExpHooker = New CVBAPIHooker
    End Sub并且把m_oImgHooker 删除了。基本就是修改了这些部分。。其他的应该无关紧要了。。添加了一个TEXT2,可是在运行的时候HOOK RECV函数有比较多的时候会使目标进程停止响应,原因是什么呢?是不是目标正在调用RECV,所以就挂掉了,应该怎么解决这个问题呢
      

  16.   

    其实改的地方还有一些,只是在原来的基础上加一个判断,以实现本程序启动时就得到 联众三打一的进程,调用的WSOCK,获取其RECV函数并HOOK它,应该没有太大问题吧只是加了个判断把列表里面的项目都变成1个了。。呵呵。。以上过程都没问题,可是当我HOOK它的时候,就可能使目标进程停止响应,还有就是VB也非法操作了,加了mAA这个参数判断以后VB就没问题了,可是目标还是可能停止响应。。斑竹来帮帮我吧:)
      

  17.   

    我只对单线程的情况做了处理,所以,如果目标进程有多个线程调用这个函数的话就有可能产生阻塞现象...解决的办法么...偶写的时候偷懒没有想过,呵呵。解决思路有一个,在拦截函数的时候就把目标进程中的其他线程挂起(suspend),等处理完了,再恢复……或者给vb的接收部分弄个队列,呵呵,想想就很麻烦了~
      

  18.   

    TO:楼上,可以,完全可以,用绿豆提供的代码你可以试试,已经实现截取封包并转换为明文,就差封包解密了。到现在没结贴,主要有这么几个原因:
    1、遇到问题还可以继续问问,嘿嘿。偶改代码经常颠三倒四的。
    2、现在可用分还不多,不够提供500分的,这500分现在应该是给绿豆的。
    3、VirtualDesktop(吴滂) 兄改的BCB代码不知道怎么样了,那是一个DLL文件,如果成了也给500
    4、让大家多关注关注,看看绿豆的代码,非常经典了,写的又工整,思路也很清晰(参照《WINDOWS核心编程》22.9.3一节,HOOK API的内容)。
    5、等待大家捐赠可用分。现在这个帖子的分一样是要散一部分给帮忙的同志们的,VirtualDesktop(吴滂) 兄捐赠的分结的时候至少要给到的,上一个帖子才给了160,差很多;绿豆的500分我还在筹集。。希望大家多顶顶,多学习学习这个代码,里边不但有一些高级的技术,还有一些基本问题绿豆解决的也非常好,象传递一个数组参数时用其指针传递,用默认事件来击活操作等等等等,都是应该学习的地方。
      

  19.   

    绿豆提供的代码我看了 收益不小啊   我分不多只有100多了 要是捐赠给你100怎么做啊???
    就是
    '''''''''
    我只对单线程的情况做了处理,所以,如果目标进程有多个线程调用这个函数的话就有可能产生阻塞现象...解决的办法么...偶写的时候偷懒没有想过,呵呵。解决思路有一个,在拦截函数的时候就把目标进程中的其他线程挂起(suspend),等处理完了,再恢复……或者给vb的接收部分弄个队列,呵呵,想想就很麻烦了~
    ''''''''''''
    这个问题能解决吗,我估计不是个问题
      

  20.   

    堆栈情况:
    93 02 00 00 DC FD 12 00 
    90 45 1B 00 34 FD 12 00 
    10 FD 12 00 00 00 00 00 
    31 00 5B DA 54 43 1B 00 
    00 20 00 00 6C 05 00 00 
    E0 5C 1D 00 00 20 00 00 
    00 00 00 00 DC FD 12 00 
    90 45 1B 00 00 00 00 00 
    E0 5C 1D 00 54 FD 12 00 
    58 B0 17 22 00 20 00 00 
    98 E3 17 00 BE B1 17 22 
    90 45 1B 00 00 00 00 00 
    98 E3 17 00 74 FD 12 00 
    3D B0 17 22 6C 05 00 00 
    01 00 00 00 7E 14 17 22 
    2E 59 17 22 6C 05 00 00参数堆栈情况:
    0000056C 001D5CE0 00002000 00000000 
    0012FDDC 001B4590 00000000 001D5CE0 
    0012FD54 2217B058 00002000 0017E398 
    2217B1BE 001B4590 00000000 0017E398EAX值:
    00002000ECX值:
    001B4354EDX值:
    DA5B0031EBX值:
    00000000ESP值:
    0012FD10EBP值:
    0012FD34ESI值:
    001B4590EDI值:
    0012FDDCEFLAGS值:
    00000293函数返回地址:
    22177363
    帮我看看 如何获取封包啊 
    怎么参数堆栈都一样啊?
      

  21.   

    哈哈又发现一个问题用绿豆说的方法,返回RECV的数据,得到一个数组,这里面的数据就是一个完整的包吗?还是分包内容。我怎么分析分析着发现好象封包里缺点什么,,呵呵,如果是分包,我怎么把它合并呢?
    VirtualDesktop(吴滂) 兄偶的可用分就100多了,哈哈,正象你说的无法捐赠了吧好象把自己绕进去了。。BCB研究的怎么样了?嘿嘿,我看封包看的头都和门口一样大了,出门的时候总怕撞到门框
      

  22.   

    其实我遇到的确实不是多线程问题,嘿嘿,现在只是对程序进行小修改,以实现我要的功能,到最后还是要参照代码重写的,因为我只拦截一个RECV而已,所以很多用不上的:)运行的东东多了,自然就慢下来了,例如连续象文本或列表添加数据还有就是,我想问问,我想判断对方的程序已经加载完成(包括网络通讯部分)也就是WSOCK.DLL已经载入,应该挂哪个函数?还是用API来判断啊(已经知道进程句柄或窗口句柄)。。
    最近严重失眠,到半夜3点左右才能睡着,而非常不幸的是来个新主任,还嚷嚷着要解聘一些人,整天上班和蹲监狱一样,去厕所也要打招呼,由于失眠还得挺着不瞌睡,所以中午回家精神都没了,分析个没有加密的封包也好多天了没弄出来,我真郁闷本来是每天喝点啤酒就能睡的,可是现在酒虫子又作祟,昨天喝了5个也没效果,根本没困,觉得今天该换白的了,哎,痛苦啊!!!!!假期加班补助还不一定给呢,呵呵,呵呵无语了,迷茫中。。
      

  23.   

    请教:
        Dim alArgsEx() As Long
        Dim mBuff() As Byte
        Dim mIndex As Long
       With m_oExpHooker
            .GetArguments alArgsEx(), 4
            ReDim mBuff(alArgsEx(2) - 1) As Byte
            .Pmemcpy2local VarPtr(mBuff(0)), alArgsEx(1), alArgsEx(2)
             Text1.Text = Text1.Text & "==============================================" & vbCrLf
            For mIndex = 0 To UBound(mBuff)
                Text1.Text = Text1.Text & Right$("0" & Hex(mBuff(mIndex)), 2) & " "
            Next
            Text1.Text = Text1.Text & vbCrLf
            Text1.SelStart = Len(Text1.Text)   
        End With
    '''''
    为什么就是接受一个字节  程序也会接收 好多自己 
    帮我看看是那的错误沾光中........
      

  24.   

    我问题更多
    为什么BeforeAction调用2次
    每次数据长度都是1152
    我也快崩溃了;
      

  25.   

    。先回答下面这个,绿豆的代码中声明了2个CVBAPIHooker类,其中一个是用来勾输入函数的,一个是用来勾输出函数的。。再回答上面一个,那段代码是我改了以后的,并没有把改的地方都贴出来,现在代码变成了这个样子:Private Sub m_oExpHooker_BeforeAction(ByVal lHookID As Long, ByVal lHookType As Long, ByVal sAPIName As String, ByVal lpArgs As Long, fBlock As Boolean, lArgCount As Long, ByVal lReturnAddress As Long)    mAA = False
        '*******************************
        Dim alArgsEx() As Long
        Dim mBuff() As Byte
        Dim mIndex As Long
        Dim TempStr As String
        '*******************************
        With m_oExpHooker
    '        .DumpStack abDumpData(), 128
    '        .GetArguments alArgs(), 16
            '******************************************
            .GetArguments alArgsEx(), 4
            If alArgsEx(2) = 20 Then 'Or alArgsEx(2) = 8 Then
            ReDim mBuff(alArgsEx(2) - 1) As Byte
            .Pmemcpy2local VarPtr(mBuff(0)), alArgsEx(1), alArgsEx(2)
            'If CLng(mBuff(4)) = 1 Or alArgsEx(2) = 8 Then
            TempStr = "==============================================" & vbCrLf
            For mIndex = 0 To UBound(mBuff)
                TempStr = TempStr & Right$("0" & Hex(mBuff(mIndex)), 2) & " "
                'TempStr = TempStr & Chr(mBuff(mIndex)) & " "
            Next
            Text2.Text = Text2.Text & TempStr & vbCrLf
            Text2.SelStart = Len(Text2.Text)
            'End If
            End If
        End With
    End Sub为什么就是接受一个字节  程序也会接收不是接收一个字节,这段程序是从类中返回勾的函数的参数,并且把参数中的内容转化为16进制显示出来,以便“封包解密”。
    你应该好好看看绿豆给出的代码,看我改的对你没什么帮助啊,而且我改的地方关键部分是请教绿豆他告诉的你也是在做这个东东吗?呵呵。。先研究绿豆的代码吧,至少应该知道各个接口和参数的作用以后才能拿来用吧。。
      

  26.   

    嘿嘿,雪貂老大还真是够意思,那偶可不客气啦~~~~~~~~~~这个问题算来还至少需要500分啊,我现在手里有180,加一起等于700分了。。(好象算的有点误差)500分是给解决问题的,本来想VirtualDesktop(吴滂) 兄把BCB代码改好了给他的,现在绿豆老大给的代码能实现了,只是我还没改,那现在是给
    绿豆:500
    吴滂:200+
    其他帮忙的同志把分散了,700分刚好,,,不够嘿嘿。。
    雪貂捐给我500+吧~~~~~~~等我再有分了,雪貂同志一定要大大地感谢的~~~~~~
      

  27.   

    嘿嘿,自己发觉吧。1字节有特别大什么意思,么明白刚去发了个致欠,以前发帖子给人回复HEX2DEC,那个代码是好久以前写的,里面很多东西都是复制的,结果今天浏览了一下,突然发现,,,,,那个函数真的那么烂,哈哈,虽然我改了以后还一样烂又改了一下才感觉好些了。。郁闷啊,睡觉啊明天早起就有工作
      

  28.   

    绿豆不是说
    调用 .GetArguments alArgs(), 4 就可以把  s,    FAR *buf,  len,    flags 四个参数值依次保存到alArgs(0)-alArgs(3)中,即
    s=alArgs(0)
    buf=alArgs(1)
    len=alArgs(2)
    flags=alArgs(3)
    所以,要获得封包内容,只要再这样就可以了
    ReDim b(alArgs(2)-1) As Byte
    .Pmemcpy2local VarPtr(b(0)),alArgs(1),alArgs(2)现在数组b里就是封包内容了\\
    为什么我每次得到的 b 都不是我发的内容 
    都特别大 
    但是;里面有我发的东西 
    其他的数据是什么?
    怎么提出来
    我每次得到的  alArgs(2) 都是1152 大小 为什么呢
      

  29.   

    光封包来说,就有封包头,其中包括协议啦,地址啦等等一些信息。
    .Pmemcpy2local VarPtr(b(0)),alArgs(1),alArgs(2)
    你对上面这句理解有点问题,应该是这样的,b是接收的数组是你要的内容,而alArgs(1)是基地址也就是开始读内存的位置,alArgs(2)是数组大小也就是要读的长度。你去看CVBAPIHooker类的Pmemcpy2local方法,其中调用了ReadProcessMemory这个API,而参数就是供这个API使用的,根据ReadProcessMemory中参数意义就可以知道Pmemcpy2local各个参数的意义了。还是那句老话,自己多看看人家的代码,弄明白接口和参数的意义。
      

  30.   

    绿豆绿豆,,,,,,斑竹斑竹~~~~~~老大老大~~~~~~~~~~问个问题啊~获取到的内容是整个封包吗?我怎么觉得是分包发送啊,我HOOK的是RECV函数,TCP/IP协议的,单线程。分析的时候怎么发现每一个封包的内容都不完整呢,而且每出一张牌我就接收到3-4个封包,其中一个代表了出牌的人的位置,出牌张数,还有出的牌(花色和大小),但是我没有办法得出具体出牌人是谁,根据使用其他外挂可以看出,每一个封包都可以确定出牌人是谁,也就是说封包里面不但有出牌人的位置,还有出牌人位置与本人相对位置的关系,但我分析的那一个封包里只有出牌的人的位置,出牌张数,还有出的牌,其他都是0。。如果真的是分包发送,我应该怎么处理呢?从封包内容识别并合并封包重新分析,还是可以HOOK某个API知道封包已经完整呢?看网上介绍的一般都是识别封包内容并合并。。WSOCK中没有合并封包的处理函数吗?我记得VB编程的时候发送封包是不用自己分包的,是系统自动完成啊,是某个API合并的结果吗??很疑惑啊
      

  31.   

    谢谢 zcsor 回答 
    不过还是迷惑中 
    哎 水平低啊!
    我自己做的测试程序
    发送 123   收到封包 有123  但是还有1000多的垃圾数据是那的 
    是我.Pmemcpy2local VarPtr(b(0)),alArgs(1),alArgs(2)
    调用有问题 
    自己继续研究 

      

  32.   

    以前的问题先不问了。。绿豆的代码里面没有锁对方进程吧。
    我想在检测到对方加载了WSOCK.DLL以后马上锁他的进程,然后HOOK RECV函数,HOOK上以后解除锁定,可以实现吗?我在分析封包的时候没发截获到从一开始就发过来的封包,所以有些信息得不到,象上面这样的想法能实现吗?各位高手说说,我不行了
      

  33.   

    关键是想从一开始就得到封包,还有一个想法,是不是可以HOOK 对方的LoadLibrary函数来判断WSOCK加载完成呢?如果可以就不用那么麻烦了。。因为程序还没改到这部分,封包分析基本结束了,所以快大动手术了,,,想问问从一开始就得到封包是不是我上面说的某种方法可以实现呢?如果能我就按思路去写写看了
    各位帮帮忙吧~~~~~~~明天这个帖子就结了,再开一个200的。。继续
      

  34.   

    zcsor 我给你捐了500分,不过高利贷者(CSDN)收走了50 :-)
      

  35.   

    嘿嘿,刚刚干了点坏事,下了绿豆好多代码。。嘿嘿。=========哈哈,偶也干了。
    在绿老大的博客上列出许多诱人的代码,可惜下载地址都过期了。那天一看到他贴出那个 api hook,偶就试了,果然把那些宝藏找到了 :-)
      

  36.   

    数据分包是程序干的活,你得自己给接上...偶好象该更新下偶blog了,呵呵
      

  37.   

    嘿嘿,刚刚干了点坏事,下了绿豆好多代码。。嘿嘿。=========哈哈,偶也干了。
    在绿老大的博客上列出许多诱人的代码,可惜下载地址都过期了。那天一看到他贴出那个 api hook,偶就试了,果然把那些宝藏找到了 :-)
    绿豆的博客在那啊
    绿豆还做无盘啊 
    我以前也做过
      

  38.   

    fxy_2002(阿勇) 
    Modest(塞北雪貂)·(偶最欣赏楼主的分) 
    我太感谢各位老大的支持了!!!!!!无语了,想流泪啊!!虽然时间不多,但我会把海绵里每一滴水都挤出来!!尽快写完这个代码,然后发布在下载区里面,附加代码(嘿嘿,我改的部分肯定不如绿豆写的好,不过应该能将就着看了:))。
    :)绿豆的代码都被大家“盗取”了啊,呵呵,看来大家经常把人家地址分开用啊,哈哈。
    绿豆的代码我有些部分还没详细看,粗略的看过几次,有些地方不详细研究还是不懂的,星期 4休息,争取把大部分代码完成。最近大家就会见到的!!
      

  39.   

    supergreenbean(超级绿豆(MSMVP - VB) - 今天你穿短袖了么?)老大的BOLG是什么地址贴出来啊,大家也好继续寻宝,呵呵 
    封包我决定不接了其实分包也好,虽然处理上代码要判断哪一部分有用,不过我觉得既然我没分析明白封包中其他内容的意思(其他内容中除了指令字一定还有其他的,因为好长好长啊),那接起来也没啥用,直接用知道什么意思的那段就好了!!对了,顺便问问,如果把人家的游戏弄出外挂还公开代码,人家不会送我去小岛吧。。
    哈哈哈哈啊
      

  40.   

    按照昨天说的,今天把这个帖子结了下续地址为
    http://community.csdn.net/Expert/topic/4916/4916268.xml?temp=.9895899