首页
社区
课程
招聘
UltraProtect壳中有TLS目录数据,脱壳后可否不用?
发表于: 2006-2-15 19:22 4110

UltraProtect壳中有TLS目录数据,脱壳后可否不用?

2006-2-15 19:22
4110
首先我要感谢你来看哈!!
我有三个问题.
一、UltraProtect壳中有TLS目录数据,且指向壳程序内部,这个TLS是壳程序需用呢?还是原程序需用。怎样区分被谁使用?
二、UltraProtect一定会盗码吗?怎样有效区分他们盗或不盗?
三、这样处理修复输入表(UltraProtect加壳)可以吗?(使用Only Mahine)
lds reg05,"所有验证正确"
lds reg06,"包含有错误数据,地址在……"

//检查引用数据指针是否线形增加
    mov reg02,0x4CC738    //起始偏移,与替换指针代码段值相同便于更改偏移
    mov reg03,0x4CC9D8    //结束偏移,与替换指针代码段值相同便于更改偏移
    mov reg01,reg02
lp: invoke ReadMemLong,reg01,2
    cmp reg00,0x25FF
    jne err
    add reg01,6
    cmp reg01,reg03
    jb  lp
    jnb ok
err:invoke msg,reg06
    invoke PrintNum,reg01,16
    jmp done
ok: invoke msg,reg05

//替换引入表指针代码段
    sub reg03,reg02
    div reg03,6
    mul reg03,4
    inc reg02    //与检查引用数据相同便于更改偏移
    inc reg02
    invoke ReadMemLong,reg02,4
    add reg03,reg00
    mov reg01,reg00               //转到引入地址表IAT
lp1:invoke ReadMemLong,reg01,4    //先取出要跳转的指针
    mov reg02,reg00   
    invoke ReadMemLong,reg02,1
    cmp reg00,0x68
    jne err
    mov reg00,reg02
    inc reg00   
    invoke ReadMemLong,reg00,4    //读取
    mov reg10,reg00
    add reg02,5    //检查指令是否正确
    invoke ReadMemLong,reg02,3
    cmp reg00,0x243481
    jne err    //检查指令是否正确完毕
    add reg02,3    //到异或数据
    invoke ReadMemLong,reg02,4    //读取
    xor reg00,reg10    //xor,我要的api地址
    invoke WriteMemLong,reg01,reg00,4    //写入到IAT中
    add reg01,4
    cmp reg01,reg03   
    jb lp1
加一个问题,脱壳后出现C0000005(访问错)错误,主要是新的程序进入点设置不对?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 392
活跃值: (909)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
2
UltraProtect本身不带TLS
ReplaceCode必须自己跟踪,如果发现程序中有大量对壳中同一地址的调用可以跟进去观察
2006-2-16 11:32
0
游客
登录 | 注册 方可回帖
返回
//