首先我要感谢你来看哈!!
我有三个问题.
一、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期)