涛4091 发表于 2019-5-8 16:49:23

汇编代码分析_已解决

本帖最后由 涛4091 于 2023-2-23 11:09 编辑




有没有 dalao看看我这写哪里错了?

人造人 发表于 2019-5-8 22:02:07

你是怎么知道这两个函数的汇编地址的?

涛4091 发表于 2019-5-9 07:52:35

本帖最后由 涛4091 于 2019-5-9 07:53 编辑

人造人 发表于 2019-5-8 22:02
你是怎么知道这两个函数的汇编地址的?

#include <windows.h>
#include <winbase.h>
typedef void (*MYPROC)(LPTSTR);   //定义函数指针
int main()
{
    HINSTANCE LibHandle;
    MYPROC ProcAdd;
    LibHandle = LoadLibrary(“msvcrt”);
    ProcAdd = (MYPROC) GetProcAddress(LibHandle, "system"); //查找System函数地址
    (ProcAdd) ("command.com");   //其实就是执行System(“command.com”)
    return 0;
}



大体这个样子,但是有的系统能找到不同的地址,相同的函数功能。也有的地址不稳定

人造人 发表于 2019-5-9 12:26:10

涛4091 发表于 2019-5-9 07:52
大体这个样子,但是有的系统能找到不同的地址,相同的函数功能。也有的地址不稳定

对,你可以通过GetProcAddress得到System的地址,但是LoadLibrary和GetProcAddress的地址你又如何得到呢?

涛4091 发表于 2019-5-10 16:12:08

人造人 发表于 2019-5-9 12:26
对,你可以通过GetProcAddress得到System的地址,但是LoadLibrary和GetProcAddress的地址你又如何得到呢 ...

handle = LoadLibrary("kernel32.dll");
        loadlibrary = (MYPROC)GetProcAddress(handle,"LoadLibraryA");
        printf("loadlibrary = 0x %x",loadlibrary);

涛4091 发表于 2019-5-10 16:12:39

人造人 发表于 2019-5-9 12:26
对,你可以通过GetProcAddress得到System的地址,但是LoadLibrary和GetProcAddress的地址你又如何得到呢 ...

GetProcAddress没找

人造人 发表于 2019-5-10 17:33:15

涛4091 发表于 2019-5-10 16:12


你调用了LoadLibrary得到LoadLibraryA的地址,那么LoadLibrary的地址你如何知道?

涛4091 发表于 2019-5-10 19:58:13

人造人 发表于 2019-5-10 17:33
你调用了LoadLibrary得到LoadLibraryA的地址,那么LoadLibrary的地址你如何知道?

我靠 我咋知道 我就是知道 loadlibrary的函数地址就行了

Mr.HO 发表于 2019-5-17 00:26:21

不重启机器DLL句柄不会变的,如果是测试可以的不是测试就GG

zwhe 发表于 2020-6-4 11:22:44

{:10_297:}

405794672 发表于 2020-6-15 17:07:28

你这是两行代码?吓我一跳!我还真以为是两行代码!
页: [1]
查看完整版本: 汇编代码分析_已解决