能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
[原创]Code Virtualizer的一点分析和还原
我想试试用程序实现变形代码清理,得到大致干净的VM解释引擎,再根据handler的特征及PCODE与机器码的对应关系,做个半自动的工具来还原代码。PCODE到机器码的转换我以前都是直接读的,完全没有实战价值。不过我对直接得到正确的机器码几乎不抱信心,不出错的可能性太小了,能以助记符的形式做出来就不错。
感觉难度太大,花了不少时间代码清理还没过,放下有1个月了。
能力值:
( LV9,RANK:1210 )
[原创]Code Virtualizer的一点分析和还原
楼上几位的批评是不对的,我的确没看过CV加出来的东西。不过看Ryosuke的文章,有点象Tmd|WL选CISC类型时的VM。IDB里变形代码相对较少,也没有假的jcc分枝,也许Ryosuke
保护的时候选的强度不高?
顺便问一句,Ryosuke怎么搞的变形代码? 我本想再玩一下,不过最近工作比较忙,要放一放了。
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
[原创]玩玩IDA Graph View
谢谢楼上大牛指点,我确实是用VC写的,没用过BCB,改天试试换个编译器。自己写layout对我来说太复杂了,原理都不清楚不要说写代码了
。好象ProcessStalker有layout源码。具体到我的应用,如果能把变形代码处理好,node数应该超不出100,也许可避免这个问题。
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
PEDIY开始变质了
楼主的意思大概是指论坛关注的技术方向有所转变。我个人的看法,pediy毕竟是以crack方向起家的,在拓宽技术面的同时,应尽量保持本色。
能力值:
( LV9,RANK:1210 )
我也来理解虚拟机
① VM的context与Win32的CONTEXT结构没有关系,但意思相似
② VM指令集是作者自己定义的, pcode==pseduo code==伪码==VM的机器码
③ 程序(VM解释引擎)在跑原x86指令转换的对应pcode,什么都做了
没有看明白楼主打算怎样还原x86指令?
能力值:
( LV9,RANK:1210 )
[求助]SSDT Hook卸载驱动时蓝屏的问题
有时候是要bsod,把那段代码找出来了, 在DriverUnload尾巴上加:
/*
* bit lame delay - but to prevent BSOD on active hooked system services
* could improve here with remove locks, but you will never get a 100%
* correct situation
*/
Delay.QuadPart = -5000000;
KeDelayExecutionThread(KernelMode, TRUE, &Delay);
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
能力值:
( LV9,RANK:1210 )
[求助]od中,如何确定跳转来自何处?
有个ring3的插件Conditional Branch Logger,我更喜欢ring0的DebugCtlMSR,openrce上有讨论.
Hook int1:
__declspec(naked) void NewInt01()
{
// - Interrupt 1 Handler -
//
// offset | contains
// ---------+-----------------------------
// esp : EIP Context
// esp + 4 : CS Context
// esp + 8 : EFLAGS Context
__asm
{
pushad
mov eax, dr6
bt eax, 0Eh //单步?
jnc __oldint01
mov ecx, 1D9h
rdmsr
or eax, 3
wrmsr
__oldint01:
popad
jmp OldHandler01
}
}
在OD中trace时记录的只有控制转移指令