VS2005里面有没有取函数首尾地址的宏,或者其他方法也行
比如汇编里面有个CODE_START equ this byte
Po"pd xlzS"AB
首尾加一个,然后相减取取函数长
vs里面有没有类似的方法 [i=s] 本帖最后由 bianfeng 于 2010-7-28 07:51 编辑 [/i] ?!v4m7d I
取尾地址用内联汇编自定位看看吧\[1J5qU
int End;
int Start;!bn},`:_-r&?
__asm8pWj G*mr#`3a$c
{zIL-Q&v6Z
call $+5p&\-mwS'G)Q'}#M.kv
pop [Start]
add [Start],5 究竟是+5还是加多少取决于add [Start],5指令的长度[!i&uK;V$B
}$i,q!p1u2k^|g-p)T
!CGx]Y&Q
XXXXX;x0ou2NA&aJd(D
XXXXX
XXXXXL^^3B5SN
__asm/z'n)D^Qr/q.W6TD
{,Oe,f*C lw#|
call $+5]$yi$DF_ q6CN
pop [End]
sub [End],5-z!W]O^4H0I
}
只适用于函数内,最笨的方法,呵呵。 你说这方法跟我前天晚上睡觉时候想得一模一样L-@;n@H*yU
发帖的时候忘说还有没有其他的 首地址应该很直接吧,直接用函数名啊
尾地址要用其他方法了 结帖了,一楼的是个方法就结给他吧 刚发出去悬赏80UB,现在在终于收回点成本了:lol 取函数尾地址有什么用呢?XpT } D2C:BK
我觉得,相对来说首地址很明确,就是函数被Call的地址(函数名、函数入口),但是尾地址就不明确了,高级语言里,除非这个函数的是顺序执行的,没有任何分支或循环,否则这个函数的最后一条语句在编译成机器指令后其所在的地址却未必是这个函数体的最高地址,而如果以这个函数出口指令作为函数结束标志也不成,因为一个函数可以有多条Ret指令的。 [quote]取函数尾地址有什么用呢?!~dP$G-DLf
我觉得,相对来说首地址很明确,就是函数被Call的地址(函数名、函数入口),但 ...zW6S(Ap;HS)s!v t
[size=2][color=#999999]zyyuser 发表于 2010-8-7 22:48[/color] [url=http://www.unpack.cn/redirect.php?goto=findpost&pid=756189&ptid=53506][img]http://www.unpack.cn/images/common/back.gif[/img][/url][/size][/quote]GX_8jRY
e]6TF!DM5Pt?I
把整个函数取出,加密或清除,或者猥琐,虚拟化 学习了。我是新人
页:
[1]