jj3341332 发表于 2011-12-2 21:01:06

VC++问道喊话CALL

DWORD dwbase=*(DWORD*)(0x009ded44);
        DWORD dwaddress=*(DWORD*)(dwbase+0x1f0);
       
   DWORD p;
   
    p=*(DWORD*)(0x09ded44);
        p=*(DWORD*)(p+0x1f0);
        p=*(DWORD*)(p+0x1f0);
        p=*(DWORD*)(p+0x1dc);
        //p=*(DWORD*)(p);
        DWORD a={0};
        DWORD *a1;
        a1=&a;

        memcpy((DWORD*)p,"123456",strlen("123456"));//喊话内容

        _asm
        {
                push a1
                push 0x10
                push p
                push 0
                push 0x01
                mov ecx,dwaddress
                mov edx,0x0063F4E0
                call edx
               


        }

我自己写的 百分百能喊话:$

1aa82e 发表于 2011-12-2 23:41:04

回复 1# jj3341332


    用易语言怎么写?

1aa82e 发表于 2011-12-3 00:11:42

.版本 2

.子程序 _按钮1_被单击

文本内存地址 = 内存.创建 (120)
内存_写文本型 (进程句柄, 文本内存地址, 编辑框1.内容)
asm_置代码 ()
asm_push (十六到十 (“0”))
asm_push (十六到十 (“10”))
asm_push (文本内存地址)
asm_push (十六到十 (“0”))
asm_push (十六到十 (“1”))
asm_mov_esi_ptr (十六到十 (“009DED44”))
asm_mov_ecx_ptr_esi_add (十六到十 (“1f0”))
asm_mov_eax_常数 (十六到十 (#喊话CALL))
asm_call_eax ()
asm_ret ()
asm_调用函数 (进程ID, asm_取代码 ())
输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
内存.释放 (文本内存地址)

153911076 发表于 2013-1-11 02:01:55

{:2_38:} 厉害,喊话基址和那个ESI基址是怎么找的,求教了
页: [1]
查看完整版本: VC++问道喊话CALL