能力值:
(RANK:1060 )
|
-
-
26 楼
给个改良decorator的方案,仅供参考。
import inspect
def is_recursion():
def get_code(depth):
return inspect.currentframe(depth+1).f_code
return get_code(1) is get_code(2)
def hook(dllname, funcname=None, calltype=None, restype=c_ulong, **kwargs):
def decorator(f):
if funcname is None:
funcname = f.__name__
functype = {
None: WINFUNCTYPE,
'C': CFUNCTYPE,
} [calltype]
argnames = inspect.getargspec(f).args
argtypes = [kwargs.get(argname, c_ulong) for argname in argnames]
prototype = functype(restype, *argtypes)
trampoline = prototype(hook_engine(dllname, funcname))
def g(*v, **k):
if is_recursion():
return trampoline(*v, **k)
else:
return f(**v, **k)
return g
return decorator
@hook('user32')
def MessageBoxA(hWnd, lpText, lpCaption, uType):
return MessageBoxA(a, 'fuck', c, d)
|
能力值:
( LV9,RANK:170 )
|
-
-
27 楼
哦的神啊,原来py可以如此天书
|
能力值:
( LV6,RANK:80 )
|
-
-
28 楼
@快雪时晴
py真的很高效的工具语言啊~~用起来很迅猛的~~
@forgot
感觉和我写的那个没什么大差别 我就不改了
- -# 呵呵 我还是比较喜欢这个 OriginFuncion = PYdotDLL_HOOK_ReturnOriginFunction
|
能力值:
( LV2,RANK:10 )
|
-
-
29 楼
看不懂,太杯具了。写多一篇来科普下吧。。
|
能力值:
( LV2,RANK:10 )
|
-
-
30 楼
好东西,先谢过楼主了!
|
能力值:
( LV2,RANK:10 )
|
-
-
31 楼
确实杯具,越看越糊涂。感觉该回炉再造了
|
|
|