首页
社区
课程
招聘
小小的anti
发表于: 2006-10-6 21:17 14591

小小的anti

2006-10-6 21:17
14591
#include <windows.h>

#pragma comment(linker, "/subsystem:windows")
#pragma comment(linker, "/entry:mydllmain")
#pragma comment(linker, "/filealign:0x200")

void anti()
{
        __asm
        {
                push 0
                push 0
                push 11h
                push -2
                mov eax, 0C7h
                mov edx, esp
                int 2Eh
        }

        __try
        {
                __asm
                {
                        lea eax, back
                        push 0
                        push eax
                        mov eax, 0E5h
                        mov edx, esp
                        __emit 0x0F
                        __emit 0x34
                }
        }

        __except (1)
        {
                __asm mov edi, edi
        }

back:
        __asm add esp, 14h
        return ;
}

DWORD __declspec(naked) Is98()
{
        __asm
        {
                xor eax, eax
                mov ax, cs
                shr eax, 8
                retn
        }
}

BOOL APIENTRY mydllmain( HANDLE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                                         )
{
    switch (ul_reason_for_call)
        {
                case DLL_PROCESS_ATTACH:
                        __asm push esi
                        if (Is98() == 0)
                                anti();
                        __asm pop esi
                        break;
    }
    return TRUE;
}

[课程]Android-CTF解题方法汇总!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (38)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个要支持
2006-10-6 21:18
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
3
完全没有技术含量
以前写的, 偶尔加aspr的时候捆绑一下
对softworm, q3, 还有会野猪力量的无效
2006-10-6 21:24
0
雪    币: 450
活跃值: (552)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
4
技术含量这么高
向shoooo学习
2006-10-6 21:34
0
雪    币: 250
活跃值: (11)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
好帖,继续学习中
2006-10-6 21:57
0
雪    币: 214
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
帅哥....+点注释吗....
看不懂啊.....
2006-10-6 22:41
0
雪    币: 7309
活跃值: (3778)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
对我这样的菜鸟有效

完全看不懂
2006-10-6 22:43
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
8
传说中的themida的anti?

      __emit 0x0F
      __emit 0x34

这两个是sysenter

第一个int 2Eh调用是
NtRequestPort
第二个sysenter调用是
NtSetInformationThread

附调试纪录,P4D XP sp2

lkd> dd KeServiceDescriptorTable
8055c6e0  862ce660 00000000 00000129 862ce528
8055c6f0  00000000 00000000 00000000 00000000
8055c700  00000000 00000000 00000000 00000000
8055c710  00000000 00000000 00000000 00000000
8055c720  00000002 00002710 bf80db87 00000000
8055c730  861c9220 f70ff9e0 854c2754 806f5040
8055c740  00000000 00000000 ffeced30 ffffffff
8055c750  bf31c370 01c6e8fc 00000000 00000000
lkd> dd 862ce660+0x31c
862ce97c  805a2466 805a2792 805c7c8c 8060e10e
862ce98c  80521776 80621456 805d4264 f4baa5e0
862ce99c  806214f8 80621588 80621654 805a3780
862ce9ac  80615824 80615824 805d0f3e 80644cc4
862ce9bc  80613b10 8060fc56 806104c8 8057a48a
862ce9cc  8060e1ce 8060e298 8061642e 8061635e
862ce9dc  806419d6 8057adae 805d60f8 80621de8
862ce9ec  805c3276 f4bac1f0 805cb914 805f9662
lkd> ln 805a2466
(805a2466)   nt!NtRequestPort   |  (805a2792)   nt!NtRequestWaitReplyPort
Exact matches:
    nt!NtRequestPort = <no type information>
lkd> dd 862ce660+0x394
862ce9f4  805cb914 805f9662 80616896 80577af0
862cea04  805d3090 806163ca 806162f2 8057b558
862cea14  805bf8f2 80615ac4 806157fa 8060eb34
862cea24  f74f80b0 80613294 805c7ba0 80538d4c
862cea34  80612766 806145da 8062170e 8057be6e
862cea44  80611d84 80526846 80616ae0 80616c8a
862cea54  805d420e f4baa590 80616eae 805d6c8c
862cea64  f4baa1c0 805d2368 805d43ce 805350ec
lkd> ln 805cb914
(805cb914)   nt!NtSetInformationThread   |  (805cc19a)   nt!PsEstablishWin32Callouts
Exact matches:
    nt!NtSetInformationThread = <no type information>

PS:强烈建议加精华
BTW:如月和shoooo有啥关系----WMoS插件.
2006-10-7 00:47
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
最初由 Isaiah 发布
BTW:如月和shoooo有啥关系----WMoS插件

........

shoooo刚做WMoS插件时用了个如月的头像.
2006-10-7 11:01
0
雪    币: 3511
活跃值: (4037)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
10
BT的JRSHOOOO
2006-10-7 11:06
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
啊......晕菜,完全看不懂啊,能否解释一下。
2006-10-7 12:22
0
雪    币: 331
活跃值: (56)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
12
各位老大,我的问题谁能解释一下?
2006-10-7 14:49
0
雪    币: 405
活跃值: (10)
能力值: ( LV9,RANK:1130 )
在线值:
发帖
回帖
粉丝
13
对于咱这小菜来讲,真是天书。也许能用上吧。收藏
2006-10-7 15:22
0
雪    币: 279
活跃值: (145)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
14
小小的anti难倒一大批人
2006-10-8 08:17
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
15
没想到lz竟然是师洋的粉丝。
2006-10-8 09:21
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不支持98 ME
2006-10-8 09:32
0
雪    币: 238
活跃值: (326)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
17
这样写,只能支持很少的系统,老盖现在系统升级一般都会修正调用序号,0xC7 和 0xE5 在不同的系统(这里指的不同系统并不是xp、2k这样的差异,而是指本系列中的升级,例如2k的相同版本,经过Updata后,你系统的版本还是那个2195,但后面的子版本变了,在多数情况下这个调用序号已经完全不同了,我在以前的文中曾经说过,利用序号调用,那是老盖自己的专利,你想安全,只能指名道姓来玩)中指向完全不同的函数,可以对照自己的系统,将LZ的代码入口参数修改一下,即可运行。
另外补充一句,sysenter是xp以后系统的才引入的,这个东西对于Ring0-Ring3层的切换速度明显快过中断切换的方法。sysenter指令是intel在 pII300后的cpu中引进的。
2006-10-8 10:30
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
18
发这个纯属扔石头引石头
xp下in2e不会异常, 2k下sysenter会异常
手头上没2k3
有兴趣可以自己加.
保证其他系统跑过时不会出状况就可以了
只要能吃到一个就ok了

小把戏, 因为很容易被发现,也很容易对付
2006-10-8 10:36
0
雪    币: 304
活跃值: (82)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
19
在这一句上强暴 if (Is98() == 0)
2006-10-8 11:55
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
20
下回来好好学习
2006-10-8 12:22
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
可能我这样说会再次得罪LZ,但是我还是不得不说,因为是对事不对人。
应该算是巧立名目了,把本来可直接调用ntdll.dll中的函数,而用函数的本身代码来替换。如果都这样,那就有文章可做了。(如果直接显式地调用函数,那就更没有技术含量了,LZ还是有自知之明的,所以对代码也不作任何说明,咋一看,还真不知道是用什么新技术)
2006-10-8 12:40
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
22
最初由 gkend 发布
可能我这样说会再次得罪LZ,但是我还是不得不说,因为是对事不对人。
应该算是巧立名目了,把本来可直接调用ntdll.dll中的函数,而用函数的本身代码来替换。如果都这样,那就有文章可做了。(如果直接显式地调用函数,那就更没有技术含量了,LZ还是有自知之明的,所以对代码也不作任何说明,咋一看,还真不知道是用什么新技术)


你说对了, 所以我贴子里没有说这是什么新技术
如果写一个小软件从头到尾都sysenter,然后写明for xp sp2也未尝不可.只是精力超级旺盛的人毕竟不多
不加说明是为了忽攸别人
结果成功骗到了一个精华, 满足了我的虚荣
2006-10-8 12:47
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
23
最初由 gzgzlxg 发布
这样写,只能支持很少的系统,老盖现在系统升级一般都会修正调用序号,0xC7 和 0xE5 在不同的系统(这里指的不同系统并不是xp、2k这样的差异,而是指本系列中的升级,例如2k的相同版本,经过Updata后,你系统的版本还是那个2195,但后面的子版本变了,在多数情况下这个调用序号已经完全不同了,我在以前的文中曾经说过,利用序号调用,那是老盖自己的专利,你想安全,只能指名道姓来玩)中指向完全不同的函数,可以对照自己的系统,将LZ的代码入口参数修改一下,即可运行。
另外补充一句,sysenter是xp以后系统的才引入的,这个东西对于Ring0-Ring3层的切换速度明显快过中断切换的方法。sysenter指令是intel在 pII300后的cpu中引进的。


我觉得这个不是大问题吧,通过反汇编ntdll内native api的代码可以可靠获取调用号。

to shoooo:
把能躲过新版Themida的也发出来嘛
上传的附件:
2006-10-8 19:59
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
to softworm:
能躲过新版Themida?哪个版本的themida?你有1.8?
2006-10-8 20:16
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
最初由 softworm 发布
把能躲过新版Themida的也发出来嘛

应该是把插件和Themida用的ANTI一起发.
2006-10-8 20:27
0
游客
登录 | 注册 方可回帖
返回
//