IAT Hook 工作原理 IAT Hook是通过修改IAT中保存的API地址来钩取某个API函数。 在进程中调用某个API函数,是在目标进程中的导入表中查找函数地址来进行调用,不同于GetProcAddress函数。此函数是在模块的导出表中进行查找函数地址的。 所以我们可以注入动态库到目标进程,来 ...
分类:
其他好文 时间:
2017-04-12 04:20:23
阅读次数:
216
我们知道,Objective-C是一门动态语言,它将很多静态语言在编译时期做的事放到了运行时来处理。用C++编写的程序通过编译器直接把函数地址硬编码进入可执行文件;而Objective-C无法通过编译器直接把函数地址硬编码进入可执行文件,而是在程序运行的时候,利用Runtime根据条件判断作出决定, ...
分类:
其他好文 时间:
2017-04-12 02:58:24
阅读次数:
328
1.bind相关用法 fun.bind(obj)将obj传入fun作为其作用域 fun.bind将返回一个新的函数地址,fun.bind(obj)!=fun.bind(obj) 反复bind只有第一次有效 2.js中的真值 0 , “” , null , undefined , false , Na ...
分类:
编程语言 时间:
2017-03-22 00:04:29
阅读次数:
166
''' # 不改变原函数代码,在调用原函数之前或之后执行其他代码 # 不加参数是两层def,会直接将原函数地址传递进来,返回new_fun(带原函数地址)下的inner函数 # 原函数执行前调用的函数(统一参数) # def new_fun(sfunc): # def inner(args): # ... ...
分类:
编程语言 时间:
2017-03-12 19:51:35
阅读次数:
276
定义一个multiset集合S:multiset <int> S;如果有重复元素一定要记得使用multiset,stl set默认从小到大排序,upper_bound(x)返回集合中第一个大于x的元素地址,lower_bound(x)返回集合中第一个大于等于x的元素地址。我们可以这样定义一个迭代器: ...
分类:
编程语言 时间:
2017-03-12 11:05:53
阅读次数:
215
在X64的情况下,JMP反汇编出来的 FF 25 后面加的是 00 00 00 00 和导出表函数地址 测试代码如下: Sub_1和 Sub_8InX64同样是汇编 ...
分类:
其他好文 时间:
2017-02-25 12:30:36
阅读次数:
212
在X86下,JMP反汇编出来的FF 25加的是导入表的地址 测试代码如下: ...
分类:
其他好文 时间:
2017-02-25 12:17:17
阅读次数:
183
我们一般要获得一个函数的地址,通常采用的是明文,例如定义一个api函数字符串"MessageBoxA",然后在GetProcAddress函数中一个字节一个字节进行比较。这样弊端很多,例如如果我们定义一个杀毒软件比较敏感的api函数字符串,那么可能就会增加杀毒软件对我们的程序的判定值,而且定义这些字 ...
分类:
编程语言 时间:
2017-02-16 23:56:32
阅读次数:
698
1. 静态成员函数的地址可以用普通函数指针存储,而普通成员函数地址需要用类成员函数指针来存储。 2. 静态成员函数不可以调用类的非静态成员。因为静态成员函数不含this指针。 3.静态成员函数不可以同时声明为virtual, const, volatile函数。 4. 静态成员函数无需创建任何实例对 ...
分类:
编程语言 时间:
2017-02-16 13:53:18
阅读次数:
197
一、继承的本质 1、在c++编译器的内部类可以理解为结构体 2、子类是由父类成员叠加子类新成员得到的 二、多态的本质 1、当类中声明一个虚函数时,编译器会在类中生成一个虚函数表 2、虚函数表是一个存储成员函数地址的数据结构 3、虚函数表是由编译器自动生成与维护的 4、virtual成员函数会被编译器 ...
分类:
编程语言 时间:
2017-02-06 11:01:54
阅读次数:
307