萌王美琴吧 关注:71贴子:3,067
  • 14回复贴,共1

windows下 外挂和木马

只看楼主收藏回复

程序一旦运行起来就会创建进程,各个进程之间是相互独立的。
这就保证了进程之间无法访问内存,从而无法修改程序。
但是 windows给我们提供了dll这个好东西。
通过dll注入 我们可以方便的修改内存,调用函数。
从而实现木马,外挂


IP属地:浙江1楼2014-12-01 16:38回复
    首先用cheatengine获得游戏中所要修改的变量的内存地址。


    IP属地:浙江2楼2014-12-01 18:15
    回复


      IP属地:浙江3楼2014-12-01 18:17
      回复
        当左侧的阳光为0的时候,我们将0值输入如图所示的矩形框里,然后单击 新的扫描


        IP属地:浙江4楼2014-12-01 18:23
        回复
          然后接着收集阳光,等到阳光是25的时候,我们输入25,然后再次扫描


          IP属地:浙江5楼2014-12-01 18:25
          回复
            然后我们等到阳光为50的时候,我们输入50,然后再次扫描。这个时候我们发现左侧的地址只有一个:1CFFF600.这个时候我们要找的保存阳光的地址就是 1CFFF600。


            IP属地:浙江6楼2014-12-01 18:27
            回复
              新建一个DLL项目,按照如图所示。


              IP属地:浙江7楼2014-12-01 18:30
              回复
                这个时候写入以下代码。代码很好理解:定义一个指针p,p指向0x1CFFF600.
                然后通过循环判断,如果*p小于1000,则赋值1000。也就是每当阳光少于1000的时候,总是直接恢复到1000。


                IP属地:浙江8楼2014-12-01 18:36
                回复
                  然后我们编译这个项目,会生成一个dll文件,在debug目录下。


                  IP属地:浙江9楼2014-12-01 18:37
                  回复
                    下面将这个dll注入相应的程序中。

                    我们需要一个dllinject程序,网上一大把随便下载。然后打开dllinject,选中要导入的目标程序。这里
                    是PlantsVsZombies。然后点击注入


                    IP属地:浙江10楼2014-12-01 18:45
                    回复
                      这个时候弹出如图所示的注入DLL窗口,这里有亮点需要解释:
                      ①动态链接库文件:就是我们前面自己编译的dll
                      ②加载时候执行的函数就是我们代码里所写,自己希望运行的函数。
                      这两个设置好以后,就单击确定。


                      IP属地:浙江11楼2014-12-01 18:49
                      回复
                        这个时候,我们游戏的阳光就变成了1000.而且我们每次花费的阳光少于1000的时候,总是能恢复到1000


                        IP属地:浙江12楼2014-12-01 18:51
                        回复
                          出错了:前面的代码应该修改成
                          #include <stdio.h>
                          #define EXPORTDLL __declspec(dllexport)
                          EXPORTDLL void sunshine()
                          {
                          int *p = (int*)0x1CFFF600;
                          while (1)
                          {
                          if (*p < 1000)
                          {
                          *p = 1000;
                          }
                          }
                          }


                          IP属地:浙江13楼2014-12-01 18:57
                          回复
                            干啥用@( ̄- ̄)@


                            IP属地:辽宁来自Android客户端14楼2014-12-01 20:55
                            收起回复