首页
社区
课程
招聘
[原创]NoobyProtect SE Demo 1.6.1.0 IAT加密初探
发表于: 2009-8-15 11:56 16125

[原创]NoobyProtect SE Demo 1.6.1.0 IAT加密初探

2009-8-15 11:56
16125

【文章标题】: NoobyProtect SE Demo 1.6.1.0 IAT加密初探
【文章作者】: yangjt
【作者邮箱】: [email=yangjietao123@163.com]yangjietao123@163.com[/email]
【作者QQ号】: 325002492
【下载地址】: 附件里
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
  非常感谢这两天帮助过我的所有人……特别感谢下Nooby指点,还有HyperChem和Hmily的帮助
  
首先载入壳,Demo版可以来到VirtualProtect在那里的
E8 75FFFFFF     call    VirtualProtectEx处下断点,然后看堆栈,当堆栈变成这样的时候


0012FF48 FFFFFFFF |hProcess = FFFFFFFF
0012FF4C 00401000 |Address = 复件_未?00401000
0012FF50 00004000 |Size = 4000 (16384.)
0012FF54 00000040 |NewProtect = PAGE_EXECUTE_READWRITE
0012FF58 0012FF84 \pOldProtect = 0012FF84

004010C7 000D 0A00002A add byte ptr [2A00000A], cl
004010CD 8BEC mov ebp, esp
004010CF 83EC 44 sub esp, 44
004010D2 56 push esi
004010D3 E8 E3BE0A00 call 004ACFBB;这就是被加密的API调用,可以搜索到这里,直接Enter进入
004010D8 ^ 7D 8B jge short 00401065
004010DA F0:8A00 lock mov al, byte ptr [eax]
004010DD 3C 22 cmp al, 22
004010DF 75 1B jnz short 004010FC
004010E1 56 push esi
004010E2 E8 D6AF0A00 call 004AC0BD

004ACFBB 90 nop;直接在这里下断点,运行断下
004ACFBC 68 A448416D push 6D4148A4 ;IAT索引?后面用来储存所调用的API需要的地址
004ACFC1 9C pushfd
004ACFC2 814424 04 341DA>add dword ptr [esp+4], 74AB1D34 ;修改IAT索引为E1EC65D8
004ACEBA 60 pushad
004AC71C E8 00000000 call 004AC721
004AC721 58 pop eax
004AC722 81E8 79C386D7 sub eax, D786C379 ;貌似是GetModuleHandleA的定位
004AC644 ? E8 0D000000 call 004AC656
004AC649 . 6B 65 72 6E 6>ascii "kernel32.dll",0
004AC656 FF90 CD8286D7 call dword ptr [eax+D78682CD] ; kernel32.GetModuleHandleA
004AC362 85C0 test eax, eax ; kernel32.7C800000
004AC364 ^ 0F84 0CFDFFFF je 004AC076 ;不成功?就得到自己的句柄……Nooby说是为了支持插件
004AC01A E8 10000000 call 004AC02F
004AC01F . 47 65 74 43 6>ascii "GetCommandLineA",0 ;其实这里已经看到API的名字了……
004ABFF8 50 push eax ;下面的一坨代码是用来模拟GetProcAddress的…
004AC055 E8 B089F6FF call 00414A0A
00414A0A E8 F7A90600 call 0047F406
0047F406 50 push eax
0047F40C 9C pushfd
0047D183 E8 00000000 call 0047D188
0047D188 E9 902A0000 jmp 0047FC1D
0047FC1D 58 pop eax
0047FC8B 81E8 81A56389 sub eax, 8963A581
0047FC91 81C0 5AC66389 add eax, 8963C65A ;定位SEH异常处理流程
0047FC97 874424 04 xchg dword ptr [esp+4], eax ;充当SEH handler
0047FC9B 9D popfd
0047FC9C 64:FF35 0000000>push dword ptr fs:[0]
0047FC25 64:8925 0000000>mov dword ptr fs:[0], esp ;建立异常处理
0047D161 CC int3 ;邪恶的CC 9D
0047D162 9D popfd ;Nooby说这里本来是用于猥琐OD的一个Bug,后来因为StrongOD,OD都不吃这套了

0047F261 60 pushad;这里下int3断点
0047F262 8B45 08 mov eax, dword ptr [ebp+8] ;pEXCEPTION_RECORD
0047F265 EB 5F jmp short 0047F2C6 ;= =SEH处理过程也被猥琐了……
0047F2C6 8B4D 10 mov ecx, dword ptr [ebp+10] ;ecx:pContext
0047F270 8B00 mov eax, dword ptr [eax] ;eax = dwExceptionCode
0047F2D2 8061 18 F0 and byte ptr [ecx+18], 0F0 ;iDr7清零
0047F27B 80E8 03 sub al, 3
0047F2FC ^\70 FA jo short 0047F2F8 ;这样可以用来判断异常类型,不是不处理,交给上一层SEH
0047F33F 8B99 C1000000 mov ebx, dword ptr [ecx+C1] ;ebx=Eflag+1
0047F450 80E3 01 and bl, 1 ;TF标志判断
0047F34A 3AC3 cmp al, bl ;猥琐单步用
0047F429 ^\0F85 C9FEFFFF jnz 0047F2F8 ;做个标记了……免得下次再走进去……
0047F3B8 8381 B8000000 0>add dword ptr [ecx+B8], 0D ;计算返回位置,加13个字节
0047F3BF 8B81 B8000000 mov eax, dword ptr [ecx+B8] ;返回点 = 0047D16E
0047F3C5 0FB600 movzx eax, byte ptr [eax] ;返回点的第一个字节
0047F3C8 81C0 9F109961 add eax, 6199109F
0047F391 81F8 6B119961 cmp eax, 6199116B ;判断是否是CC……跳转Demo里没有……
0047F3F0 61 popad
0047F3F1 C7C0 00000000 mov eax, 0 ;EXCEPTION_CONTINUE_EXECTION
0047F337 C2 1000 retn 10 ;安全返回……

;从0047F2FC跳出来的分支
;死亡谷……
0047F2F8 61 popad
0047F331 C7C0 FFFFFFFF mov eax, -1 ;EXCEPTION_CONTINUE_SEARCH
0047F337 C2 1000 retn 10

0047D16E /E9 5F220000 jmp 0047F3D2
0047F3D2 64:8F05 0000000>pop dword ptr fs:[0] ; 解除异常处理,其实可以跑到这个地方下Int3 断点,这样不会被SEH里的检测猥琐
0047F3FC 8D6424 08 lea esp, dword ptr [esp+8] ;平衡堆栈
0047F45A 55 push ebp
0047F4FE 8BEC mov ebp, esp
0047F500 81EC 0C010000 sub esp, 10C
0047F506 53 push ebx
0047F507 8B5D 08 mov ebx, dword ptr [ebp+8] ;dll image base
0047F50A 85DB test ebx, ebx
0047F50C 56 push esi ;什么玩艺?
0047F4E1 57 push edi
0047F515 /74 1D je short 0047F534 ;不太可能出问题吧……
0047F738 8BCB mov ecx, ebx ;这里的代码猥琐程度终于降低了
0047F73A 33FF xor edi, edi
0047F73C E8 F2D2FCFF call 0044CA33;这里算是比较远的Call,跟进……
0047F741 8B48 7C mov ecx, dword ptr [eax+7C]
0047F744 8B70 78 mov esi, dword ptr [eax+78]
0047F747 03F3 add esi, ebx
0047F749 85C9 test ecx, ecx

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

上传的附件:
收藏
免费 7
支持
分享
最新回复 (20)
雪    币: 223
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Hmily吧 你打了Himly

想看VM
2009-8-15 12:07
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
3
打反了……
2009-8-15 12:10
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
不知道谁能彻底猥琐掉NP
2009-8-15 12:49
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
5
Nooby
2009-8-15 13:15
0
雪    币: 451
活跃值: (78)
能力值: ( LV12,RANK:470 )
在线值:
发帖
回帖
粉丝
6
赶快来膜拜yangjt牛
2009-8-15 13:28
0
雪    币: 7309
活跃值: (3788)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
7
人肉法真强大。。

怎么还原啊?
2009-8-15 15:34
0
雪    币: 1632
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好厉害!..
2009-8-15 16:59
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
9
我手工的……没办法……比较笨……
2009-8-15 17:22
0
雪    币: 86
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
hehe 那么多的iat手工还原 。。。。。 只能膜拜了
2009-8-15 19:36
0
雪    币: 615
活跃值: (1222)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
11
太强大了!!!!!!
2009-8-15 20:23
0
雪    币: 46
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
我用NoobyProtect  把保护 全部 选上~加在 记事本上~~~

我这里的OD 全部刚 载入就 关闭~~
2009-8-15 20:52
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
先支持下~!
2009-8-15 20:55
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
14
要用海风的猛药让你的OD强壮起来……
2009-8-15 21:15
0
雪    币: 192
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
人肉流是没前途的,只有用机器对抗机器才有希望,但仅仅是暂时的,随着so much more more的垃圾代码和多分支处理,猥琐流必将取得最终的胜利,哈哈
2009-8-15 21:58
0
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
膜拜yangjt大牛大大牛
2009-8-15 23:02
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
17
不要骗了.
我这里就有养一只这种鸡.
2009-8-16 00:09
0
雪    币: 609
活跃值: (237)
能力值: ( LV12,RANK:441 )
在线值:
发帖
回帖
粉丝
18
大牛就别抬举我了……我真的是手动搞的……
2009-8-16 08:59
0
雪    币: 138
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
啊,好强大啊,严重学习
2009-8-18 13:18
0
雪    币: 205
活跃值: (12)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
20
不错哇。。。。。。。。。。
2009-8-19 14:41
0
雪    币: 97
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
好东西要顶~~~
2009-8-19 19:13
0
游客
登录 | 注册 方可回帖
返回
//