首页
社区
课程
招聘
[原创]不知这是不是一个有用的东东?
发表于: 2009-8-19 19:55 5060

[原创]不知这是不是一个有用的东东?

2009-8-19 19:55
5060
(看过觉得有用,帮留言一下,如果没有用我会在一天后删除)
本人没有上过电脑课,所有的东东都是东学一点西学一点,然后自己乱摸一点的.现在有一点点无意中的发现不知有没有用:

  假设某个软件有一个加密函数A(参数1,参数2,参数3).现在只知有三个参数,而我有办法运行此软件后,动态的情况下,这个函数空间中加入一个线程,然后在这个线程中实现调用此加密码函数A,按软件要求进行加密.如某游戏的加密过程,只要知道了动作数据结构,那你就能实现了封包加密码过程并送到服务器去而服务器确认无误.(这里不需要什么库之类的东东),(当然也能在软件中插入你自己编写的函数.)

  上述过程不知是不是网上到处都有的.如果有我就不去写这个过程了.如果没有就能试写一下.

(QQ是43004790或348858444,我不常上这里,希望与大家交个朋友)
附上实现代码:
DWORD ADDR_send=0x00521df0;//A函数首址
DWORD addmi_0=0x005decc4;//网络句柄
void addmi(DWORD a,DWORD b,DWORD c,DWORD d,DWORD e)//加密
{//a需要加密的数据b加密后保存的数据c加密长度d密钥终点e密钥起点
        //基址是0x005deccc
        DWORD zdx_eax,zdx_ebx,zdx_ecx,zdx_edx,zdx_esi,zdx_edi,zdx_1;
        zdx_eax=e;
        zdx_ebx=c;
        zdx_ecx=d;
        zdx_edx=0;
        zdx_edi=d-0x20;
        zdx_esi=zdx_edi-0x12430;
        zdx_1=e-0xd;
        _asm{
                pushad
        }
        _asm{
                mov eax,zdx_eax
                mov ebx,zdx_ebx
                mov ecx,zdx_ecx
                mov edx,zdx_edx
                mov edi,zdx_edi
                mov esi,zdx_esi
                push 1
                push zdx_1
                push e
                push d
                push c
                push b
                push a
                CALL ADDR_send
                add esp,0x1c
        }
        _asm{
                popad
        }
        DWORD  hProcId;
        GetWindowThreadProcessId(HWND0,&hProcId);
        HANDLE nOK = OpenProcess(PROCESS_ALL_ACCESS|PROCESS_TERMINATE|PROCESS_VM_OPERATION|PROCESS_VM_READ|
                PROCESS_VM_WRITE,FALSE,hProcId);
        DWORD addmi_0_0,addmi_0_1;
        ReadProcessMemory(nOK,(LPCVOID)(addmi_0),(LPVOID)&addmi_0_0,4,NULL);//得到加密址
        ReadProcessMemory(nOK,(LPCVOID)(addmi_0_0+0x2004),(LPVOID)&addmi_0_1,4,NULL);//得到网络句柄
        CloseHandle(nOK);
        SOCKET m_hSocket;
        m_hSocket=addmi_0_1;
        send(m_hSocket,(char*)b,c,0);
       

}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 146
活跃值: (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
你忽略了一个很重要的问题,数据校验
    加密后的数据一定会被校验,我不知道你怎么通过一个简单的插入线程来窥得加密前数据格式,没有加密前的数据格式你又如何构造一个正确的封包,出现了鸡和蛋的问题
2009-8-19 21:31
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个是可以跟踪出来的.加密前的数据一般在这个加密函数前面几个函数的.不会太远的,我这个是用了游戏软件的加密过程的.与游戏自身加密是完全一样的.无需校验,我在游戏已经测试过了
2009-8-19 23:44
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
看来没有什么用删除了
2009-8-20 00:00
0
雪    币: 22
活跃值: (443)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼主能否提供下完整的代码 让我等小菜学习下。。
2009-8-20 10:53
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个代码就是完整的啊
2009-8-20 11:22
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你要先写一个键盘木马启动全局钩子
2009-8-20 11:27
0
雪    币: 146
活跃值: (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
          问题没有楼主想的这么简单,好的游戏加密过程你不会让你那么容易找到,而且不知楼主考虑了NP之类的问题没???
2009-8-20 12:53
0
雪    币: 146
活跃值: (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
9
而且还有问题就是,楼主这样构造出来的都只能是一些合法的操作,用户手动就可以完成了,那么写这个程序到底是什么意义呢??
2009-8-20 12:55
0
雪    币: 191
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
我现在的问题就是遇到NP的问题的.幸好现在NP的游戏不多,不然我就得出去打工了,数据一截到,那什么事情都好办的啊.做个好的按键精灵就能有生活费的啊/
2009-8-20 15:59
0
雪    币: 146
活跃值: (33)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
11
         原来你只是想做按键精灵啊。。。。我以为你要刷游戏里的装备啊之类的数据。。。
2009-8-20 17:12
0
游客
登录 | 注册 方可回帖
返回
//