尝试分析隐式加载和显式加载的dll在exe中进行反汇编时的表现。

1. 测试条件

(1)动态库 testdll1  导出函数 int add(int, int) 和  int add2(int, int)

 1 #pragma once
2
3 #ifdef MY_LIB_EXPORT
4 #define MY_LIB __declspec(dllexport)
5 #else
6 #define MY_LIB __declspec(dllimport)
7 #endif
8
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14
15 MY_LIB int __stdcall add(int a, int b);
16 MY_LIB int __stdcall add2(int a, int b);
17
18
19 #ifdef __cplusplus
20 }
21 #endif
 

(2)动态库 testdll2  导出函数 int sub(int, int)

 1 #pragma once
2
3 #ifdef MY_LIB_EXPORT
4 #define MY_LIB __declspec(dllexport)
5 #else
6 #define MY_LIB __declspec(dllimport)
7 #endif
8
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13
14
15 MY_LIB int __stdcall add(int a, int b);
16
17 #ifdef __cplusplus
18 }
19 #endif

(3)测试进程

testdll1 隐式加载到测试进程

    #pragma comment(lib, "..\\x64\\debug\\testdll1.lib")
int a = 100;
int b = 200;
int c = add(a, b);
 
 

testdll2 显式加载到测试进程

1     HMODULE hMod = LoadLibrary(TEXT("..\\x64\\debug\\testdll2.dll"));
2 sub_t func = (sub_t)GetProcAddress(hMod, "sub");
3 if (!func)
4 {
5 FreeLibrary(hMod);
6 hMod = NULL;
7 }
8 int d = func(a, b);
 
 

2、用IDA Pro打开测试进程

打开后,观察测试进程的导入表如下:

在add函数调用处下断点

在sub函数调用处下断点

启动调试,add调用处按下F7进入(step into),如下所示:

尝试按下几次快捷键d后没有看到汇编代码。

在sub函数调用处按下F7进入,发现并不能进入函数内部。

测试情况如上。

IDA Pro分析dll在exe中的表现的更多相关文章

  1. 恶意代码分析实战四:IDA Pro神器的使用

    目录 恶意代码分析实战四:IDA Pro神器的使用 实验: 题目1:利用IDA Pro分析dll的入口点并显示地址 空格切换文本视图: 带地址显示图形界面 题目2:IDA Pro导入表窗口 题目3:交 ...

  2. C#中用ILMerge合并DLL和exe文件成一个exe文件或者DLL

    ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它既可以作为  开源使用,也可以作为NuGet包使用. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett _at_ ...

  3. IDA Pro - 如何得到比较清楚的逆向伪代码

    原文地址:Question about disassembler 简介 这篇文章介绍了如何在不使用插件的IDA Hex-Rays如何得到比较清晰的伪代码.IDA Hex-Rays功能很强大,只要你提供 ...

  4. 路由器逆向分析------在Linux上安装IDA Pro

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69665905 01.在Linux系统上安装Linux版本的IDA Pro Linu ...

  5. IDA Pro 在CSAPP lab2中的使用

    在做lab2的时候,偶然的情况下,发现了IDA pro这样一个反汇编工具,总的来说对于lab2这样的小实验读懂代码的大体功能是有作用的,但对于想要具体明白某一条指令的执行过程,又显得不足,到最后还是需 ...

  6. 其原因可能是堆被损坏,这说明**.exe中或它加载的任何DLL中有Bug

    最近在写一个写日志文件的线程时,调用了HeapAlloc/HeapFree 申请/释放堆缓冲内存.调用HeapFree释放有个条件就是,日志的空闲缓冲队列中内存块超过100个.在测试的时候,发现调用H ...

  7. 中触发一个断点 其原因可能是堆被损坏,这说明 ***.exe 中或它所加载的任何 DLL 中有 Bug

    软件中使用了DevComponents.DotNetBar2.dll MessageBoxEx.Show("ddd");运行到这句出现这个错误 : 中触发一个断点 其原因可能是堆被 ...

  8. 其原因可能是堆被损坏,这也说明 xxx.exe 中或它所加载的任何 DLL 中有 bug

    1.代码如下: string src ="abcdabcd"; char* dst = new char[8]; strcpy(dst,src.c_str()); delete[] ...

  9. dll中使用exe中的变量

    注意:输出目录为:Result共享目录 1.exe项目: // EXE.cpp : 定义控制台应用程序的入口点.// #include "stdafx.h" extern" ...

  10. 皮肤和DLL和图片等项目文件完全整合到exe中

    C#开发的程序原生界面实在是太丑了,自己又没有美化天赋,所以只能使用皮肤控件了,网上找到了IrisSkin2,包含一个.dll文件和若干ssk后缀的皮肤文件,代码其实很简单的.但是后来发现个问题,就是 ...

随机推荐

  1. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v8.4版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...

  2. manim边学边做--改变动画速度

    ChangeSpeed类是Manim库中用于修改动画速度的类. 它提供了一种灵活的方式来控制动画的播放速度,使动画在不同时间段内以不同的速度播放,从而创造出更加丰富多样的动画效果. 比如,在创建包含多 ...

  3. Pytorch Utils 总结

    Utils 从torch.nn.utils模块 clip_grad_norm_ 裁剪参数迭代的梯度范数. clip_grad_value_ 在指定值处剪辑可迭代参数的梯度. parameters_to ...

  4. C#+ WPF 实现蓝牙转WIFI计步上位机

    前言 一个WIFI上位机,接收底层MPU6050数据,途中转蓝牙从机透传,到蓝牙主机直连WIFI,PC端UDP通信,实现三轴加速度数据传送和计步功能. 项目介绍 本项目基于.NET平台,使用WPF开发 ...

  5. PS2021、色环插件Coolorus下载+色环无法拖动问题和没有压感问题的解决

    PS2021+色环插件Coolorus+色环无法拖动问题解决+没有压感问题解决 1.资源下载链接 PS各版本下载: 感谢微博@vposy大佬无私奉献提供的各版本ADOBE软件直装破解: 百度网盘: p ...

  6. 前端学习openLayers配合vue3(简单的创建一个地图)

    首先搭建一个vue工程化环境,首先我们先来创建一个地图吧 首先我们需要下载 npm i ol 其次我们需要在main.js里面引入相关的css import 'ol/ol.css' 到现在我们就可以开 ...

  7. Appium Android自动化测试配置

    1. 首先需要在Android 手机上安装3个apk文件 https://github.com/appium/appium-uiautomator2-server/releases (2个apk文件) ...

  8. CDS标准视图:测量点数据 I_MeasuringPointData

    视图名称:测量点数据 I_MeasuringPointData 视图类型:基础视图 视图代码: 点击查看代码 @AbapCatalog.sqlViewName: 'IMEASPOINTDATA' @A ...

  9. MySQL-扩展

    1.行转列 源数据: 目标数据: 数据准备 -- 建表插入数据 drop table if exists time_temp; create table if not exists time_temp ...

  10. 原生js元素拖动效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...