- 注册时间
- 2011-4-25
- 最后登录
- 2014-3-11
- 在线时间
- 15 小时
终身VIP会员
- 魔鬼币
- 12048
|
首先打开OD 下BP SEND 断点,
在堆栈区复制返回CALL信息,并整理之- 0012F0C0 005F8E56 V巁. /CALL 到 send 来自 ElementC.005F8E51
- 0012F0C4 0000019C ?.. |Socket = 19C
- 0012F0C8 00ABCDA0 犕? |Data = ElementC.00ABCDA0
- 0012F0CC 00000001 ... |DataSize = 1
- 0012F0D0 00000000 .... \Flags = 0
- 0
- 0012F130 005F8CC2 聦_. 返回到 ElementC.005F8CC2 来自 ElementC.005F8CD0
- 0012F144 005FB83F ?竉. 返回到 ElementC.005FB83F 来自 ElementC.005F8C80
- 0012F150 12F8BAF4 艉? ASCII "offensive"
- 0012F180 00632418 $c. 返回到 ElementC.00632418 来自 ElementC.005FB790
- 0012F194 12F8BAF4 艉? ASCII "offensive"
- 0012F198 0055A7B9 恭U. 返回到 ElementC.0055A7B9 来自 ElementC.006323C0
- 0012F1D0 007C783C <x|. 返回到 ElementC.007C783C 来自 ElementC.007C7860=====
- 0012F1DC 12F8BAF4 艉? ASCII "offensive"
- 0012F1E0 11F61948 H?
- 0012F1E4 12F8BAF4 艉? ASCII "offensive"
- 0012F1E8 007CC5DE 夼|. 返回到 ElementC.007CC5DE 来自 ElementC.007C7820
- 0012F1EC 12F8BAF4 艉? ASCII "offensive"
- 0012F1F8 12F8BAF4 艉? ASCII "offensive"
- 0012F1FC 77BFC3E7 缑縲 返回到 MSVCRT.77BFC3E7 来自 MSVCRT.77BFC2E9
复制代码 找特殊的那个CALL,即- 0012F198 0055A7B9 恭U. 返回到 ElementC.0055A7B9 来自 ElementC.006323C0
复制代码 在OD中查找CALL ,CTRL+G 找0055A7B9
得到- 055A740 51 PUSH ECX ECX=11F453A8
- 0055A741 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 堆栈地址=0012F1AC
- EAX=11F453A8
- 0055A745 6A 04 PUSH 4
- 0055A747 50 PUSH EAX
- 0055A748 6A 02 PUSH 2
- 0055A74A 6A 00 PUSH 0
- 0055A74C C74424 10 00000>MOV DWORD PTR SS:[ESP+10],0 ; 跟随
- 堆栈 SS:[0012F1AC]=11F453A8
- 0055A754 E8 677C0D00 CALL ElementC.006323C0
- 0055A759 83C4 14 ADD ESP,14
- 0055A75C C2 0400 RETN 4
- 0055A75F 90 NOP
- ===============================================================
- 0055A760 51 PUSH ECX ECX=11F453A8
- 0055A761 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 0055A765 6A 04 PUSH 4
- 0055A767 50 PUSH EAX
- 0055A768 6A 02 PUSH 2
- 0055A76A 6A 00 PUSH 0
- 0055A76C C74424 10 01000>MOV DWORD PTR SS:[ESP+10],1 ; 停止
- 0055A774 E8 477C0D00 CALL ElementC.006323C0
- 0055A779 83C4 14 ADD ESP,14
- 0055A77C C2 0400 RETN 4
- 0055A77F 90 NOP
- 0055A780 51 PUSH ECX
- 0055A781 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 0055A785 6A 04 PUSH 4
- 0055A787 50 PUSH EAX
- 0055A788 6A 03 PUSH 3
- 0055A78A 6A 00 PUSH 0
- 0055A78C C74424 10 00000>MOV DWORD PTR SS:[ESP+10],0 ; 防御
- 0055A794 E8 277C0D00 CALL ElementC.006323C0
- 0055A799 83C4 14 ADD ESP,14
- 0055A79C C2 0400 RETN 4
- 0055A79F 90 NOP
- 0055A7A0 51 PUSH ECX
- 0055A7A1 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 0055A7A5 6A 04 PUSH 4
- 0055A7A7 50 PUSH EAX
- 0055A7A8 6A 03 PUSH 3
- 0055A7AA 6A 00 PUSH 0
- 0055A7AC C74424 10 01000>MOV DWORD PTR SS:[ESP+10],1 ; 攻击
- 0055A7B4 E8 077C0D00 CALL ElementC.006323C0
- 0055A7B9 83C4 14 ADD ESP,14
- 0055A7BC C2 0400 RETN 4
- 0055A7BF 90 NOP
- 0055A7C0 51 PUSH ECX
- 0055A7C1 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 0055A7C5 6A 04 PUSH 4
- 0055A7C7 50 PUSH EAX
- 0055A7C8 6A 03 PUSH 3
- 0055A7CA 6A 00 PUSH 0 ; dd [[[[00abdab0]+1C]+8]+8]+68
- 0055A7CC C74424 10 02000>MOV DWORD PTR SS:[ESP+10],2 ; 手动
- 0055A7D4 E8 E77B0D00 CALL ElementC.006323C0
- 0055A7D9 83C4 14 ADD ESP,14
- 0055A7DC C2 0400 RETN 4
复制代码 对- 0055A740 51 PUSH ECX ECX=11F453A8
- 0055A741 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
- 堆栈地址=0012F1AC
- EAX=11F453A8
- 0055A745 6A 04 PUSH 4
- 0055A747 50 PUSH EAX
- 0055A748 6A 02 PUSH 2
- 0055A74A 6A 00 PUSH 0
- 0055A74C C74424 10 00000>MOV DWORD PTR SS:[ESP+10],0 ; 跟随
- 堆栈 SS:[0012F1AC]=11F453A8
- 0055A754 E8 677C0D00 CALL ElementC.006323C0
- 0055A759 83C4 14 ADD ESP,14
- 0055A75C C2 0400 RETN 4
- 0055A75F 90 NOP
复制代码 下断点分析, PUSH ECX= PUSH [0012F1AC]
LEA EAX,DWORD PTR SS:[ESP] =MOV 0012F1AC
MOV DWORD PTR SS:[ESP+10],0=MOV [0012F1AC],0
用注入工具测试成功,用魔鬼作坊模块 编程- .版本 2
- .子程序 宠物跟随
- asm_置代码 ()
- asm_mov_ecx_ptr (十六到十 (#宠物动作EAX))
- asm_push_ecx ()
- asm_mov_eax_常数 (十六到十 (#宠物动作EAX))
- asm_push (十六到十 (“4”))
- asm_push_eax ()
- asm_push (十六到十 (“2”))
- asm_push (十六到十 (“0”))
- asm_mov_ebx_常数 (0)
- asm_mov_ptr_ebx (十六到十 (#宠物动作EAX))
- asm_mov_ebx_常数 (十六到十 (#宠物动作CALL))
- asm_call_ebx ()
- asm_add_esp (十六到十 (“14”))
- asm_ret ()
- asm_调用函数 (进程ID, asm_取代码 ())
- 输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
- .子程序 宠物停止
- asm_置代码 ()
- asm_mov_ecx_ptr (十六到十 (#宠物动作EAX))
- asm_push_ecx ()
- asm_mov_eax_常数 (十六到十 (#宠物动作EAX))
- asm_push (十六到十 (“4”))
- asm_push_eax ()
- asm_push (十六到十 (“2”))
- asm_push (十六到十 (“0”))
- asm_mov_ebx_常数 (1)
- asm_mov_ptr_ebx (十六到十 (#宠物动作EAX))
- asm_mov_ebx_常数 (十六到十 (#宠物动作CALL))
- asm_call_ebx ()
- asm_add_esp (十六到十 (“14”))
- asm_ret ()
- asm_调用函数 (进程ID, asm_取代码 ())
- 输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
- .子程序 宠物手动
- asm_置代码 ()
- asm_mov_ecx_ptr (十六到十 (#宠物动作EAX))
- asm_push_ecx ()
- asm_mov_eax_常数 (十六到十 (#宠物动作EAX))
- asm_push (十六到十 (“4”))
- asm_push_eax ()
- asm_push (十六到十 (“3”))
- asm_push (十六到十 (“0”))
- asm_mov_ebx_常数 (2)
- asm_mov_ptr_ebx (十六到十 (#宠物动作EAX))
- asm_mov_ebx_常数 (十六到十 (#宠物动作CALL))
- asm_call_ebx ()
- asm_add_esp (十六到十 (“14”))
- asm_ret ()
- asm_调用函数 (进程ID, asm_取代码 ())
- 输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
- .子程序 宠物防守
- asm_置代码 ()
- asm_mov_ecx_ptr (十六到十 (#宠物动作EAX))
- asm_push_ecx ()
- asm_mov_eax_常数 (十六到十 (#宠物动作EAX))
- asm_push (十六到十 (“4”))
- asm_push_eax ()
- asm_push (十六到十 (“3”))
- asm_push (十六到十 (“0”))
- asm_mov_ebx_常数 (0)
- asm_mov_ptr_ebx (十六到十 (#宠物动作EAX))
- asm_mov_ebx_常数 (十六到十 (#宠物动作CALL))
- asm_call_ebx ()
- asm_add_esp (十六到十 (“14”))
- asm_ret ()
- asm_调用函数 (进程ID, asm_取代码 ())
- 输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
- .子程序 宠物攻击
- asm_置代码 ()
- asm_mov_ecx_ptr (十六到十 (#宠物动作EAX))
- asm_push_ecx ()
- asm_mov_eax_常数 (十六到十 (#宠物动作EAX))
- asm_push (十六到十 (“4”))
- asm_push_eax ()
- asm_push (十六到十 (“3”))
- asm_push (十六到十 (“0”))
- asm_mov_ebx_常数 (1)
- asm_mov_ptr_ebx (十六到十 (#宠物动作EAX))
- asm_mov_ebx_常数 (十六到十 (#宠物动作CALL))
- asm_call_ebx ()
- asm_add_esp (十六到十 (“14”))
- asm_ret ()
- asm_调用函数 (进程ID, asm_取代码 ())
- 输出调试文本 (字节集转为汇编指令 (asm_取代码 (), ))
复制代码
现在需要解决的一个问题是确定宠物状态,现在就去查找去,呵呵,大家一起交流,
我是魔鬼无罪
|
|