windows下获取dll中函数地址的方法

在windows下面调试shellcode的时候需要查找一些函数的地址,这里总结下可以用的方法:

1、微软的depents工具:

http://www.dependencywalker.com/

这个在xp上应该没问题

但是在64位win7之后的系统会报错,github上有人写了新的工具解决了这个问题(https://github.com/lucasg/Dependencies)

但是我这个软件读出来的地址不是正确的函数地址,具体原因未知,待测试

 

2、在调试的时候直接在OD中查找函数地址

使用ctrl+G 直接搜索函数名,如果有该函数会直接跳转到函数对应的地址上

这里可能会有几个问题:

1、ctrl+G 要在loadDLL之后执行,不然没有加载dll,会找不到对应函数

2、win7之后启用ASLR,每次的地址会随机加载(dll的基址随机)————>目前还没遇到这个问题

 

3、把需要使用的api函数写个简单的c++程序,然后调试获取到最终函数的调用地址

 

随时更新

最近的文章

scanf/fscanf/vscanf 在调shellcode的时候的问题

今天在调shellcode的时候遇到了一个小问题,shellcode的逻辑功能没有任何问题,但是用的时候无法执行。在OD里面调的时候发现,shellcode的后半段变成了cccc…于是分析了下代码,发现是shellcode中有个bit是0b,然后在读取完之后变成了00cccc char password[1024]; FILE * fp; if(!(fp=fopen(“password.txt”,”rw+”))) { printf(“test\n”); exit(0); } ...…

fscanf scanf shellcode vscanf继续阅读
更早的文章

从汇编生成shellcode的n种方法

第一种,添加asm代码到c中,然后gcc编译生成可执行代码,最后objdump:void main() {asm{…}}太麻烦,这里就不详细介绍了,基本上包含在第二种方法中 第二种,直接用NASM或者GAS生成elf文件,然后objdump: nasm -f elf print.asm ld -m elf_i386 -o print print.asm as test.asm -o test.o ld test.asm -o testobjdump生成shellcode: ...…

asm gas nasm pwn shellcode继续阅读