TCJ过木马
.版本 2
.子程序 木马启动, , , 调用此程序
.局部变量 TenRPCS, 整数型
全局_模块地址_TCJ = GetModuleHandleA (“tcj.dll”)
全局_木马返回_A = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764 ”), 5)
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)))
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)), 取真实子程序地址 (&木马处理A))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)))
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)))
全局_木马返回_B = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”), 5)
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)), 取真实子程序地址 (&木马处理B))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)))
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)))
全局_木马返回_C = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”), 5)
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)), 取真实子程序地址 (&木马处理C))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)))
.子程序 木马处理A
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_A)
.子程序 木马处理B
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_B)
.子程序 木马处理C
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_C)
.子程序 木马修改, , , 最新优化
.局部变量 局_Ecx, 整数型
.局部变量 局_Edi, 整数型
.局部变量 局_调用模块, 文本型
.局部变量 临时字节集, 字节集
连续赋值 (0, 局_Ecx, 局_Edi)
置入代码 ({ 137, 77, 252, 137, 125, 248 })
局_调用模块 = 转换Utf8转Ansi (汇编_读字节集 (局_Ecx, 局_Edi))
.如果真 (寻找文本 (局_调用模块, “dsrole.dll”, 0, 真) ≠ -1)
调试输出debug (转换Utf8转Ansi (汇编_读字节集 (局_Ecx, 局_Edi)))
汇编_写字节集 (局_Ecx, 取空白字节集 (12))
表演完毕,谢谢大家。
.版本 2
.子程序 木马启动, , , 调用此程序
.局部变量 TenRPCS, 整数型
全局_模块地址_TCJ = GetModuleHandleA (“tcj.dll”)
全局_木马返回_A = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764 ”), 5)
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)))
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)), 取真实子程序地址 (&木马处理A))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F7764”)))
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)))
全局_木马返回_B = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”), 5)
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)), 取真实子程序地址 (&木马处理B))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“F5BAD”)))
crc镜像处理1 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)))
全局_木马返回_C = 汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”), 5)
汇编_Jmp (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)), 取真实子程序地址 (&木马处理C))
crc镜像处理2 (汇编_加法 (全局_模块地址_TCJ, 十六到十 (“261CC”)))
.子程序 木马处理A
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_A)
.子程序 木马处理B
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_B)
.子程序 木马处理C
' _asm{
' pushfd
' pushad
' }end
木马修改 ()
' _asm{
' popad
' popfd
' mov ecx , dword [esi]
' add ecx , eax
' push ecx
' }end
汇编_Jmp_跳回 (全局_木马返回_C)
.子程序 木马修改, , , 最新优化
.局部变量 局_Ecx, 整数型
.局部变量 局_Edi, 整数型
.局部变量 局_调用模块, 文本型
.局部变量 临时字节集, 字节集
连续赋值 (0, 局_Ecx, 局_Edi)
置入代码 ({ 137, 77, 252, 137, 125, 248 })
局_调用模块 = 转换Utf8转Ansi (汇编_读字节集 (局_Ecx, 局_Edi))
.如果真 (寻找文本 (局_调用模块, “dsrole.dll”, 0, 真) ≠ -1)
调试输出debug (转换Utf8转Ansi (汇编_读字节集 (局_Ecx, 局_Edi)))
汇编_写字节集 (局_Ecx, 取空白字节集 (12))
表演完毕,谢谢大家。
