x32dbg/x64dbg逆向之反向分析全局变量

其他案例请查看,aes解码,密钥123456789,密文U2FsdGVkX1/Bd4k8ZAij4D8oMKFwS3bBvmalzk3NT7UEJTw7/qemqhDLwG4nl9H9/nO3Xk0Ebmv0W50P9akHkb0F2ubxR31a6lldXh/T1P5UbUFht0mf2SUJwAKMq1bg

其他案例请查看,aes解码,密钥123456789,密文U2FsdGVkX1/Bd4k8ZAij4D8oMKFwS3bBvmalzk3NT7UEJTw7/qemqhDLwG4nl9H9/nO3Xk0Ebmv0W50P9akHkb0F2ubxR31a6lldXh/T1P5UbUFht0mf2SUJwAKMq1bg

x32dbg/x64dbg逆向之反向分析全局变量
1) 逆向之反向分析全局变量介绍
咱们第一个逆向分析的来点简单的,先适应一下,顺便带这各位把C语言简单的过一遍,后面咱们再深入进去。
有之前汇编开发前期基础,这些对咱们来说已经是小儿科,无非就是mov赋值操作, 以及lea获取地址,movsd符号扩展等基本的操作。

咱们记牢以下关键规则哦,因为在后面使用x32/x64dbg进行调试分析时会频繁用到
ds:指向数据段(全局/静态变量)
ss:指向栈段(局部变量)

2)C语言案例代码
咱们在学习逆向分析的同时,同步梳理C和C++基础知识点,一正一反(正向开发,逆向分析)为后续深耕底层技术打好基础哦。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

// ===================== All Common C Global Data Types =====================
// Basic integer types
char              g_char = 0;
unsigned char     g_uchar = 0;
short             g_short = 0;
unsigned short    g_ushort = 0;
int               g_int = 0;
unsigned int      g_uint = 0;
long              g_long = 0;
unsigned long     g_ulong = 0;
long long         g_llong = 0;
unsigned long long g_ullong = 0;

// Floating-point types
float             g_float = 0.0f;
double            g_double = 0.0;
long double       g_ldouble = 0.0L;


// Boolean type
bool              g_bool = false;


// String & character array
// char pointer
char* g_pChar = NULL;
// double char pointer
char** g_ppChar = NULL;
// char array
char  g_charArr[100] = { 0 };


// Void pointer
void* g_pVoid = NULL;


// Custom struct
struct Student
{
    // Bit-field type
    unsigned int age : 8;
    unsigned int sex : 1;
    int id;
};
struct Student    g_stu;


// Union type
union Data
{
    int num;
    char ch;
    float f;
};
union Data        g_union;


// Enum type
enum Color
{
    BLACK, WHITE, RED, BLUE
};
enum Color        g_color;


// Array pointer & function pointer
int               g_arr[5] = { 0 };

// pointer to array
int (*g_pArr)[5] = &g_arr;

// function pointer
void (*g_pFunc)(int) = NULL;
// ==========================================================================

// Function pointer
void testFunc(int x)
{
    printf("Function pointer call, x = %d\n", x);
}


int main(void)
{
    g_char = 'Z';
    g_uchar = 255;
    g_short = 100;
    g_ushort = 200;
    g_int = 999;
    g_uint = 1024;
    g_long = 123456L;
    g_ulong = 654321UL;
    g_llong = 1122334455LL;
    g_ullong = 9988776655ULL;

    // float
    g_float = 3.14f;
    g_double = 6.28;
    g_ldouble = 9.99L;

    // bool
    g_bool = true;

    // string
    g_pChar = (char*)"Hello All Types";
    strcpy(g_charArr, "Char Array Content");

    // void pointer point to int
    int temp = 888;
    g_pVoid = &temp;

    // struct
    g_stu.age = 20;
    g_stu.sex = 1;
    g_stu.id = 2025001;

    // union
    g_union.num = 520;

    // enum
    g_color = RED;

    // call function pointer
    g_pFunc = testFunc;
    g_pFunc(666);


    // Print all for verification
    printf("char        : %c\n", g_char);
    printf("uchar       : %u\n", g_uchar);
    printf("short       : %d\n", g_short);
    printf("int         : %d\n", g_int);
    printf("long long   : %lld\n", g_llong);
    printf("float       : %.2f\n", g_float);
    printf("double      : %.2lf\n", g_double);
    printf("bool        : %d\n", g_bool);
    printf("str pointer : %s\n", g_pChar);
    printf("char array  : %s\n", g_charArr);
    printf("enum color  : %d\n", g_color);
    printf("struct age  : %d\n", g_stu.age);
    printf("union num   : %d\n", g_union.num);

    return 0;


}

3)汇编反向分析全局变量
咱们就用之前讲过的规则,来一步步分析这段汇编代码,核心就抓一个关键点:只要指令里看到 ds:,那操作的肯定就是全局 / 静态变量;看到 ss:,操作的就是局部变量,照着这个思路看就行。

x64
开头准备部分(没啥实质业务逻辑)
这几步是函数的 标准开场:保存栈底地址,开辟栈空间,然后把栈里刚开辟的这块内存全部填成 0xCCCCCCCC(调试器里常用这个值标记未初始化的栈内存)。这里全是 ss: 栈段操作,跟全局变量没关系,就是搭个运行的基础环境。

00007FF70D7118F0 | 40:55                    | push rbp                                                    | FileName.cpp:89
00007FF70D7118F2 | 57                       | push rdi                                                    |
00007FF70D7118F3 | 48:81EC 08010000         | sub rsp,108                                                 |
00007FF70D7118FA | 48:8D6C24 20             | lea rbp,qword ptr ss:[rsp+20]                               |
00007FF70D7118FF | 48:8D7C24 20             | lea rdi,qword ptr ss:[rsp+20]                               |
00007FF70D711904 | B9 0A000000              | mov ecx,A                                                   | 0A:'\n'
00007FF70D711909 | B8 CCCCCCCC              | mov eax,CCCCCCCC                                            |
00007FF70D71190E | F3:AB                    | rep stosd
        
这里出现了第一个 ds:读了一个全局值__security_cookie,然后和栈底地址做异或,再存回栈里。这是编译器加的 安全防护后面咱们再说,用来检测栈溢出的,不用纠结细节,知道是读全局值就行。                              |
00007FF70D711910 | 48:8B05 29B70000         | mov rax,qword ptr ds:[<__security_cookie>]                  | rax:__enc$textbss$end+276
00007FF70D711917 | 48:33C5                  | xor rax,rbp                                                 | rax:__enc$textbss$end+276
00007FF70D71191A | 48:8985 D8000000         | mov qword ptr ss:[rbp+D8],rax                               | rax:__enc$textbss$end+276

又是ds:,取了个文件名相关的全局字符串地址,调用了个内部函数,还是初始化相关的操作,直接跳过就行。
00007FF70D711921 | 48:8D0D E7060100         | lea rcx,qword ptr ds:[<__14F49BB1_FileName@cpp>]            | FileName.cpp:15732480
00007FF70D711928 | E8 48FAFFFF              | call project1.7FF70D711375                                  |
00007FF70D71192D | 90                       | nop

咱们的Main赋值正式开始
00007FF70D71192E | C605 DBB80000 5A         | mov byte ptr ds:[<char g_char>],5A                          | 将全局char变量 g_char 赋值为 'Z'(0x5A)
00007FF70D711935 | C605 D5B80000 FF         | mov byte ptr ds:[<unsigned char g_uchar>],FF                | 将全局unsigned char变量 g_uchar 赋值为255
00007FF70D71193C | B8 64000000              | mov eax,64                                                  | 将100装入EAX
00007FF70D711941 | 66:8905 CCB80000         | mov word ptr ds:[<short g_short>],ax                        | 将AX中的100写入short变量 g_short
00007FF70D711948 | B8 C8000000              | mov eax,C8                                                  | 将200装入EAX
00007FF70D71194D | 66:8905 C4B80000         | mov word ptr ds:[<unsigned short g_ushort>],ax              | 将AX中的200写入unsigned short变量 g_ushort
00007FF70D711954 | C705 BEB80000 E7030000   | mov dword ptr ds:[<int g_int>],3E7                          | 将int变量 g_int 赋值为999
00007FF70D71195E | C705 B8B80000 00040000   | mov dword ptr ds:[<unsigned int g_uint>],400                | 将unsigned int变量 g_uint 赋值为1024
00007FF70D711968 | C705 B2B80000 40E20100   | mov dword ptr ds:[<long g_long>],1E240                      | 将long变量 g_long 赋值为123456
00007FF70D711972 | C705 ACB80000 F1FB0900   | mov dword ptr ds:[<unsigned long g_ulong>],9FBF1            | 将unsigned long变量 g_ulong 赋值为654321
00007FF70D71197C | 48:C705 A9B80000 F776E54 | mov qword ptr ds:[<__int64 g_llong>],42E576F7               | 将64位整数1234567895写入g_llong
00007FF70D711987 | 48:B8 CFA2605302000000   | mov rax,25360A2CF                                           | 将64位立即数10000000079装入RAX
00007FF70D711991 | 48:8905 A0B80000         | mov qword ptr ds:[<unsigned __int64 g_ullong>],rax          | 将RAX写入unsigned long long变量 g_ullong
00007FF70D711998 | F3:0F1005 BC940000       | movss xmm0,dword ptr ds:[<__real@4048f5c3>]                 | 将float常量加载到XMM0
00007FF70D7119A0 | F3:0F1105 84B80000       | movss dword ptr ds:[<float g_float>],xmm0                   | 将float值写入g_float
00007FF70D7119A8 | F2:0F1005 90940000       | movsd xmm0,qword ptr ds:[<__real@40191eb851eb851f>]         | 将double常量加载到XMM0
00007FF70D7119B0 | F2:0F1105 88B80000       | movsd qword ptr ds:[<double g_double>],xmm0                 | 将double值写入g_double
00007FF70D7119B8 | F2:0F1005 90940000       | movsd xmm0,qword ptr ds:[<__real@4023fae147ae147b>]         | 将long double对应常量加载到XMM0
00007FF70D7119C0 | F2:0F1105 80B80000       | movsd qword ptr ds:[<long double g_ldouble>],xmm0           | 将值写入g_ldouble
00007FF70D7119C8 | C605 43B80000 01         | mov byte ptr ds:[<bool g_bool>],1                           | 将bool变量 g_bool 赋值为true
00007FF70D7119CF | 48:8D05 FA920000         | lea rax,qword ptr ds:[<"Hello All Types"...>]               | 获取字符串"Hello All Types"地址
00007FF70D7119D6 | 48:8905 73B80000         | mov qword ptr ds:[<char *g_pChar>],rax                      | 将字符串地址保存到g_pChar
00007FF70D7119DD | 48:8D15 04930000         | lea rdx,qword ptr ds:[<"Char Array Content"...>]            | 获取字符串"Char Array Content"地址
00007FF70D7119E4 | 48:8D0D 75B80000         | lea rcx,qword ptr ds:[<char *g_charArr>]                    | 获取字符数组g_charArr地址作为目标缓冲区
00007FF70D7119EB | E8 37F7FFFF              | call project1.7FF70D711127                                  | 调用字符串复制函数(类似strcpy)
00007FF70D7119F0 | 90                       | nop                                                         | 空操作,占位
00007FF70D7119F1 | C745 04 78030000         | mov dword ptr ss:[rbp+4],378                                | 局部变量赋值888
00007FF70D7119F8 | 48:8D45 04               | lea rax,qword ptr ss:[rbp+4]                                | 获取局部变量地址
00007FF70D7119FC | 48:8905 C5B80000         | mov qword ptr ds:[<void *g_pVoid>],rax                      | 将局部变量地址保存到void指针g_pVoid
00007FF70D711A03 | 8B05 C7B80000            | mov eax,dword ptr ds:[<struct Student g_stu>]               | 读取结构体Student内容
00007FF70D711A09 | 25 00FFFFFF              | and eax,FFFFFF00                                            | 清除最低8位(age字段)
00007FF70D711A0E | 83C8 14                  | or eax,14                                                   | 将age字段设置为20
00007FF70D711A11 | 8905 B9B80000            | mov dword ptr ds:[<struct Student g_stu>],eax               | 写回结构体
00007FF70D711A17 | 8B05 B3B80000            | mov eax,dword ptr ds:[<struct Student g_stu>]               | 再次读取结构体
00007FF70D711A1D | 0FBAE8 08                | bts eax,8                                                   | 设置第8位(bit field成员)
00007FF70D711A21 | 8905 A9B80000            | mov dword ptr ds:[<struct Student g_stu>],eax               | 写回修改后的结构体
00007FF70D711A27 | C705 A3B80000 29E61E00   | mov dword ptr ds:[7FF70D71D2D4],1EE629                      | 设置结构体中其他成员值
00007FF70D711A31 | C705 89B80000 08020000   | mov dword ptr ds:[<union Data g_union>],208                 | union变量赋值520
00007FF70D711A3B | C705 93B80000 02000000   | mov dword ptr ds:[<enum Color g_color>],2                   | 枚举变量g_color赋值为2
00007FF70D711A45 | 48:8D05 E8F8FFFF         | lea rax,qword ptr ds:[7FF70D711334]                         | 获取函数地址
00007FF70D711A4C | 48:8905 A5B80000         | mov qword ptr ds:[<void (__cdecl *g_pFunc)(int)>],rax       | 保存到函数指针g_pFunc
00007FF70D711A53 | B9 9A020000              | mov ecx,29A                                                 | 准备函数参数666
00007FF70D711A58 | FF15 9AB80000            | call qword ptr ds:[<void (__cdecl *g_pFunc)(int)>]          | 通过函数指针调用目标函数
00007FF70D711A5E | 90                       | nop    

00007FF70D711A5F | 0FBE05 AAB70000          | movsx eax,byte ptr ds:[<char g_char>]                       | FileName.cpp:134
00007FF70D711A66 | 8BD0                     | mov edx,eax                                                 |
00007FF70D711A68 | 48:8D0D 91920000         | lea rcx,qword ptr ds:[<"char        : %c\n"...>]            | 00007FF70D71AD00:"char        : %c\n"
00007FF70D711A6F | E8 26F7FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711A74 | 90                       | nop                                                         |

00007FF70D711A75 | 0FB605 95B70000          | movzx eax,byte ptr ds:[<unsigned char g_uchar>]             | FileName.cpp:135
00007FF70D711A7C | 8BD0                     | mov edx,eax                                                 |
00007FF70D711A7E | 48:8D0D 93920000         | lea rcx,qword ptr ds:[<"uchar       : %u\n"...>]            | 00007FF70D71AD18:"uchar       : %u\n"
00007FF70D711A85 | E8 10F7FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711A8A | 90                       | nop                                                         |

00007FF70D711A8B | 0FBF05 82B70000          | movsx eax,word ptr ds:[<short g_short>]                     | FileName.cpp:136
00007FF70D711A92 | 8BD0                     | mov edx,eax                                                 |
00007FF70D711A94 | 48:8D0D 95920000         | lea rcx,qword ptr ds:[<"short       : %d\n"...>]            | 00007FF70D71AD30:"short       : %d\n"
00007FF70D711A9B | E8 FAF6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711AA0 | 90                       | nop                                                         |

00007FF70D711AA1 | 8B15 75B70000            | mov edx,dword ptr ds:[<int g_int>]                          | FileName.cpp:137
00007FF70D711AA7 | 48:8D0D 9A920000         | lea rcx,qword ptr ds:[<"int         : %d\n"...>]            | 00007FF70D71AD48:"int         : %d\n"
00007FF70D711AAE | E8 E7F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711AB3 | 90                       | nop                                                         |

00007FF70D711AB4 | 48:8B15 75B70000         | mov rdx,qword ptr ds:[<__int64 g_llong>]                    | FileName.cpp:138, rdx:__enc$textbss$end+276
00007FF70D711ABB | 48:8D0D 9E920000         | lea rcx,qword ptr ds:[<"long long   : %lld\n"...>]          | 00007FF70D71AD60:"long long   : %lld\n"
00007FF70D711AC2 | E8 D3F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711AC7 | 90                       | nop                                                         |
00007FF70D711AC8 | F3:0F5A05 5CB70000       | cvtss2sd xmm0,dword ptr ds:[<float g_float>]                | FileName.cpp:139
00007FF70D711AD0 | 0F28C8                   | movaps xmm1,xmm0                                            |
00007FF70D711AD3 | 6648:0F7ECA              | movq rdx,xmm1                                               | rdx:__enc$textbss$end+276
00007FF70D711AD8 | 48:8D0D 99920000         | lea rcx,qword ptr ds:[<"float       : %.2f\n"...>]          | 00007FF70D71AD78:"float       : %.2f\n"
00007FF70D711ADF | E8 B6F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711AE4 | 90                       | nop                                                         |
00007FF70D711AE5 | F2:0F100D 53B70000       | movsd xmm1,qword ptr ds:[<double g_double>]                 | FileName.cpp:140
00007FF70D711AED | 6648:0F7ECA              | movq rdx,xmm1                                               | rdx:__enc$textbss$end+276
00007FF70D711AF2 | 48:8D0D 97920000         | lea rcx,qword ptr ds:[<"double      : %.2lf\n"...>]         | 00007FF70D71AD90:"double      : %.2lf\n"
00007FF70D711AF9 | E8 9CF6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711AFE | 90                       | nop                                                         |
00007FF70D711AFF | 0FB605 0CB70000          | movzx eax,byte ptr ds:[<bool g_bool>]                       | FileName.cpp:141
00007FF70D711B06 | 8BD0                     | mov edx,eax                                                 |
00007FF70D711B08 | 48:8D0D A1920000         | lea rcx,qword ptr ds:[<"bool        : %d\n"...>]            | 00007FF70D71ADB0:"bool        : %d\n"
00007FF70D711B0F | E8 86F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B14 | 90                       | nop                                                         |
00007FF70D711B15 | 48:8B15 34B70000         | mov rdx,qword ptr ds:[<char *g_pChar>]                      | FileName.cpp:142, rdx:__enc$textbss$end+276
00007FF70D711B1C | 48:8D0D A5920000         | lea rcx,qword ptr ds:[<"str pointer : %s\n"...>]            | 00007FF70D71ADC8:"str pointer : %s\n"
00007FF70D711B23 | E8 72F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B28 | 90                       | nop                                                         |
00007FF70D711B29 | 48:8D15 30B70000         | lea rdx,qword ptr ds:[<char *g_charArr>]                    | FileName.cpp:143, rdx:__enc$textbss$end+276
00007FF70D711B30 | 48:8D0D A9920000         | lea rcx,qword ptr ds:[<"char array  : %s\n"...>]            | 00007FF70D71ADE0:"char array  : %s\n"
00007FF70D711B37 | E8 5EF6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B3C | 90                       | nop                                                         |
00007FF70D711B3D | 8B15 95B70000            | mov edx,dword ptr ds:[<enum Color g_color>]                 | FileName.cpp:144
00007FF70D711B43 | 48:8D0D AE920000         | lea rcx,qword ptr ds:[<"enum color  : %d\n"...>]            | 00007FF70D71ADF8:"enum color  : %d\n"
00007FF70D711B4A | E8 4BF6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B4F | 90                       | nop                                                         |
00007FF70D711B50 | 8B05 7AB70000            | mov eax,dword ptr ds:[<struct Student g_stu>]               | FileName.cpp:145
00007FF70D711B56 | 25 FF000000              | and eax,FF                                                  |
00007FF70D711B5B | 8BD0                     | mov edx,eax                                                 |
00007FF70D711B5D | 48:8D0D AC920000         | lea rcx,qword ptr ds:[<"struct age  : %d\n"...>]            | 00007FF70D71AE10:"struct age  : %d\n"
00007FF70D711B64 | E8 31F6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B69 | 90                       | nop                                                         |
00007FF70D711B6A | 8B15 54B70000            | mov edx,dword ptr ds:[<union Data g_union>]                 | FileName.cpp:146
00007FF70D711B70 | 48:8D0D B1920000         | lea rcx,qword ptr ds:[<"union num   : %d\n"...>]            | 00007FF70D71AE28:"union num   : %d\n"
00007FF70D711B77 | E8 1EF6FFFF              | call project1.7FF70D71119A                                  |
00007FF70D711B7C | 90                       | nop                                                         |
00007FF70D711B7D | 33C0                     | xor eax,eax                                                 | FileName.cpp:148
00007FF70D711B7F | 8BF8                     | mov edi,eax                                                 | FileName.cpp:151
main函数结束
00007FF70D711B81 | 48:8D4D E0               | lea rcx,qword ptr ss:[rbp-20]                               |
00007FF70D711B85 | 48:8D15 F4900000         | lea rdx,qword ptr ds:[7FF70D71AC80]                         | rdx:__enc$textbss$end+276
00007FF70D711B8C | E8 7BF7FFFF              | call project1.7FF70D71130C                                  |
00007FF70D711B91 | 8BC7                     | mov eax,edi                                                 |
00007FF70D711B93 | 48:8B8D D8000000         | mov rcx,qword ptr ss:[rbp+D8]                               |
00007FF70D711B9A | 48:33CD                  | xor rcx,rbp                                                 |
00007FF70D711B9D | E8 11F6FFFF              | call project1.7FF70D7111B3                                  |
00007FF70D711BA2 | 48:8DA5 E8000000         | lea rsp,qword ptr ss:[rbp+E8]                               |
00007FF70D711BA9 | 5F                       | pop rdi                                                     |
00007FF70D711BAA | 5D                       | pop rbp                                                     |
00007FF70D711BAB | C3                       | ret                                                         |


x32
00007FF7B17E18F0 | 40:55                    | push rbp                                | FileName.cpp:89
00007FF7B17E18F2 | 57                       | push rdi                                |
00007FF7B17E18F3 | 48:81EC 08010000         | sub rsp,108                             |
00007FF7B17E18FA | 48:8D6C24 20             | lea rbp,qword ptr ss:[rsp+20]           |
00007FF7B17E18FF | 48:8D7C24 20             | lea rdi,qword ptr ss:[rsp+20]           |
00007FF7B17E1904 | B9 0A000000              | mov ecx,A                               | 0A:'\n'
00007FF7B17E1909 | B8 CCCCCCCC              | mov eax,CCCCCCCC                        |
00007FF7B17E190E | F3:AB                    | rep stosd                               |
00007FF7B17E1910 | 48:8B05 29B70000         | mov rax,qword ptr ds:[<__security_cooki | rax:__enc$textbss$end+276
00007FF7B17E1917 | 48:33C5                  | xor rax,rbp                             | rax:__enc$textbss$end+276
00007FF7B17E191A | 48:8985 D8000000         | mov qword ptr ss:[rbp+D8],rax           | rax:__enc$textbss$end+276
00007FF7B17E1921 | 48:8D0D E7060100         | lea rcx,qword ptr ds:[<__14F49BB1_FileN | FileName.cpp:15732480
00007FF7B17E1928 | E8 48FAFFFF              | call project1.7FF7B17E1375              |
00007FF7B17E192D | 90                       | nop                                     |
00007FF7B17E192E | C605 DBB80000 5A         | mov byte ptr ds:[<char g_char>],5A      | FileName.cpp:90, 5A:'Z'
00007FF7B17E1935 | C605 D5B80000 FF         | mov byte ptr ds:[<unsigned char g_uchar | FileName.cpp:91
00007FF7B17E193C | B8 64000000              | mov eax,64                              | FileName.cpp:92, 64:'d'
00007FF7B17E1941 | 66:8905 CCB80000         | mov word ptr ds:[<short g_short>],ax    |
00007FF7B17E1948 | B8 C8000000              | mov eax,C8                              | FileName.cpp:93
00007FF7B17E194D | 66:8905 C4B80000         | mov word ptr ds:[<unsigned short g_usho |
00007FF7B17E1954 | C705 BEB80000 E7030000   | mov dword ptr ds:[<int g_int>],3E7      | FileName.cpp:94
00007FF7B17E195E | C705 B8B80000 00040000   | mov dword ptr ds:[<unsigned int g_uint> | FileName.cpp:95
00007FF7B17E1968 | C705 B2B80000 40E20100   | mov dword ptr ds:[<long g_long>],1E240  | FileName.cpp:96
00007FF7B17E1972 | C705 ACB80000 F1FB0900   | mov dword ptr ds:[<unsigned long g_ulon | FileName.cpp:97
00007FF7B17E197C | 48:C705 A9B80000 F776E54 | mov qword ptr ds:[<__int64 g_llong>],42 | FileName.cpp:98
00007FF7B17E1987 | 48:B8 CFA2605302000000   | mov rax,25360A2CF                       | FileName.cpp:99, rax:__enc$textbss$end+276
00007FF7B17E1991 | 48:8905 A0B80000         | mov qword ptr ds:[<unsigned __int64 g_u | rax:__enc$textbss$end+276
00007FF7B17E1998 | F3:0F1005 BC940000       | movss xmm0,dword ptr ds:[<__real@4048f5 | FileName.cpp:102
00007FF7B17E19A0 | F3:0F1105 84B80000       | movss dword ptr ds:[<float g_float>],xm |
00007FF7B17E19A8 | F2:0F1005 90940000       | movsd xmm0,qword ptr ds:[<__real@40191e | FileName.cpp:103
00007FF7B17E19B0 | F2:0F1105 88B80000       | movsd qword ptr ds:[<double g_double>], |
00007FF7B17E19B8 | F2:0F1005 90940000       | movsd xmm0,qword ptr ds:[<__real@4023fa | FileName.cpp:104
00007FF7B17E19C0 | F2:0F1105 80B80000       | movsd qword ptr ds:[<long double g_ldou |
00007FF7B17E19C8 | C605 43B80000 01         | mov byte ptr ds:[<bool g_bool>],1       | FileName.cpp:107
00007FF7B17E19CF | 48:8D05 FA920000         | lea rax,qword ptr ds:[<"Hello All Types | FileName.cpp:110, rax:__enc$textbss$end+276, 00007FF7B17EACD0:"Hello All Types"
00007FF7B17E19D6 | 48:8905 73B80000         | mov qword ptr ds:[<char *g_pChar>],rax  | rax:__enc$textbss$end+276
00007FF7B17E19DD | 48:8D15 04930000         | lea rdx,qword ptr ds:[<"Char Array Cont | FileName.cpp:111, rdx:__enc$textbss$end+276, 00007FF7B17EACE8:"Char Array Content"
00007FF7B17E19E4 | 48:8D0D 75B80000         | lea rcx,qword ptr ds:[<char *g_charArr> |
00007FF7B17E19EB | E8 37F7FFFF              | call project1.7FF7B17E1127              |
00007FF7B17E19F0 | 90                       | nop                                     |
00007FF7B17E19F1 | C745 04 78030000         | mov dword ptr ss:[rbp+4],378            | FileName.cpp:114
00007FF7B17E19F8 | 48:8D45 04               | lea rax,qword ptr ss:[rbp+4]            | FileName.cpp:115, rax:__enc$textbss$end+276
00007FF7B17E19FC | 48:8905 C5B80000         | mov qword ptr ds:[<void *g_pVoid>],rax  | rax:__enc$textbss$end+276
00007FF7B17E1A03 | 8B05 C7B80000            | mov eax,dword ptr ds:[<struct Student g | FileName.cpp:118
00007FF7B17E1A09 | 25 00FFFFFF              | and eax,FFFFFF00                        |
00007FF7B17E1A0E | 83C8 14                  | or eax,14                               |
00007FF7B17E1A11 | 8905 B9B80000            | mov dword ptr ds:[<struct Student g_stu |
00007FF7B17E1A17 | 8B05 B3B80000            | mov eax,dword ptr ds:[<struct Student g | FileName.cpp:119
00007FF7B17E1A1D | 0FBAE8 08                | bts eax,8                               |
00007FF7B17E1A21 | 8905 A9B80000            | mov dword ptr ds:[<struct Student g_stu |
00007FF7B17E1A27 | C705 A3B80000 29E61E00   | mov dword ptr ds:[7FF7B17ED2D4],1EE629  | FileName.cpp:120
00007FF7B17E1A31 | C705 89B80000 08020000   | mov dword ptr ds:[<union Data g_union>] | FileName.cpp:123
00007FF7B17E1A3B | C705 93B80000 02000000   | mov dword ptr ds:[<enum Color g_color>] | FileName.cpp:126
00007FF7B17E1A45 | 48:8D05 E8F8FFFF         | lea rax,qword ptr ds:[7FF7B17E1334]     | FileName.cpp:129, rax:__enc$textbss$end+276
00007FF7B17E1A4C | 48:8905 A5B80000         | mov qword ptr ds:[<void (__cdecl *g_pFu | rax:__enc$textbss$end+276
00007FF7B17E1A53 | B9 9A020000              | mov ecx,29A                             | FileName.cpp:130
00007FF7B17E1A58 | FF15 9AB80000            | call qword ptr ds:[<void (__cdecl *g_pF |
00007FF7B17E1A5E | 90                       | nop                                     |
00007FF7B17E1A5F | 0FBE05 AAB70000          | movsx eax,byte ptr ds:[<char g_char>]   | FileName.cpp:134
00007FF7B17E1A66 | 8BD0                     | mov edx,eax                             |
00007FF7B17E1A68 | 48:8D0D 91920000         | lea rcx,qword ptr ds:[<"char        : % | 00007FF7B17EAD00:"char        : %c\n"
00007FF7B17E1A6F | E8 26F7FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1A74 | 90                       | nop                                     |
00007FF7B17E1A75 | 0FB605 95B70000          | movzx eax,byte ptr ds:[<unsigned char g | FileName.cpp:135
00007FF7B17E1A7C | 8BD0                     | mov edx,eax                             |
00007FF7B17E1A7E | 48:8D0D 93920000         | lea rcx,qword ptr ds:[<"uchar       : % | 00007FF7B17EAD18:"uchar       : %u\n"
00007FF7B17E1A85 | E8 10F7FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1A8A | 90                       | nop                                     |
00007FF7B17E1A8B | 0FBF05 82B70000          | movsx eax,word ptr ds:[<short g_short>] | FileName.cpp:136
00007FF7B17E1A92 | 8BD0                     | mov edx,eax                             |
00007FF7B17E1A94 | 48:8D0D 95920000         | lea rcx,qword ptr ds:[<"short       : % | 00007FF7B17EAD30:"short       : %d\n"
00007FF7B17E1A9B | E8 FAF6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1AA0 | 90                       | nop                                     |
00007FF7B17E1AA1 | 8B15 75B70000            | mov edx,dword ptr ds:[<int g_int>]      | FileName.cpp:137
00007FF7B17E1AA7 | 48:8D0D 9A920000         | lea rcx,qword ptr ds:[<"int         : % | 00007FF7B17EAD48:"int         : %d\n"
00007FF7B17E1AAE | E8 E7F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1AB3 | 90                       | nop                                     |
00007FF7B17E1AB4 | 48:8B15 75B70000         | mov rdx,qword ptr ds:[<__int64 g_llong> | FileName.cpp:138, rdx:__enc$textbss$end+276
00007FF7B17E1ABB | 48:8D0D 9E920000         | lea rcx,qword ptr ds:[<"long long   : % | 00007FF7B17EAD60:"long long   : %lld\n"
00007FF7B17E1AC2 | E8 D3F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1AC7 | 90                       | nop                                     |
00007FF7B17E1AC8 | F3:0F5A05 5CB70000       | cvtss2sd xmm0,dword ptr ds:[<float g_fl | FileName.cpp:139
00007FF7B17E1AD0 | 0F28C8                   | movaps xmm1,xmm0                        |
00007FF7B17E1AD3 | 6648:0F7ECA              | movq rdx,xmm1                           | rdx:__enc$textbss$end+276
00007FF7B17E1AD8 | 48:8D0D 99920000         | lea rcx,qword ptr ds:[<"float       : % | 00007FF7B17EAD78:"float       : %.2f\n"
00007FF7B17E1ADF | E8 B6F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1AE4 | 90                       | nop                                     |
00007FF7B17E1AE5 | F2:0F100D 53B70000       | movsd xmm1,qword ptr ds:[<double g_doub | FileName.cpp:140
00007FF7B17E1AED | 6648:0F7ECA              | movq rdx,xmm1                           | rdx:__enc$textbss$end+276
00007FF7B17E1AF2 | 48:8D0D 97920000         | lea rcx,qword ptr ds:[<"double      : % | 00007FF7B17EAD90:"double      : %.2lf\n"
00007FF7B17E1AF9 | E8 9CF6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1AFE | 90                       | nop                                     |
00007FF7B17E1AFF | 0FB605 0CB70000          | movzx eax,byte ptr ds:[<bool g_bool>]   | FileName.cpp:141
00007FF7B17E1B06 | 8BD0                     | mov edx,eax                             |
00007FF7B17E1B08 | 48:8D0D A1920000         | lea rcx,qword ptr ds:[<"bool        : % | 00007FF7B17EADB0:"bool        : %d\n"
00007FF7B17E1B0F | E8 86F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B14 | 90                       | nop                                     |
00007FF7B17E1B15 | 48:8B15 34B70000         | mov rdx,qword ptr ds:[<char *g_pChar>]  | FileName.cpp:142, rdx:__enc$textbss$end+276
00007FF7B17E1B1C | 48:8D0D A5920000         | lea rcx,qword ptr ds:[<"str pointer : % | 00007FF7B17EADC8:"str pointer : %s\n"
00007FF7B17E1B23 | E8 72F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B28 | 90                       | nop                                     |
00007FF7B17E1B29 | 48:8D15 30B70000         | lea rdx,qword ptr ds:[<char *g_charArr> | FileName.cpp:143, rdx:__enc$textbss$end+276
00007FF7B17E1B30 | 48:8D0D A9920000         | lea rcx,qword ptr ds:[<"char array  : % | 00007FF7B17EADE0:"char array  : %s\n"
00007FF7B17E1B37 | E8 5EF6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B3C | 90                       | nop                                     |
00007FF7B17E1B3D | 8B15 95B70000            | mov edx,dword ptr ds:[<enum Color g_col | FileName.cpp:144
00007FF7B17E1B43 | 48:8D0D AE920000         | lea rcx,qword ptr ds:[<"enum color  : % | 00007FF7B17EADF8:"enum color  : %d\n"
00007FF7B17E1B4A | E8 4BF6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B4F | 90                       | nop                                     |
00007FF7B17E1B50 | 8B05 7AB70000            | mov eax,dword ptr ds:[<struct Student g | FileName.cpp:145
00007FF7B17E1B56 | 25 FF000000              | and eax,FF                              |
00007FF7B17E1B5B | 8BD0                     | mov edx,eax                             |
00007FF7B17E1B5D | 48:8D0D AC920000         | lea rcx,qword ptr ds:[<"struct age  : % | 00007FF7B17EAE10:"struct age  : %d\n"
00007FF7B17E1B64 | E8 31F6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B69 | 90                       | nop                                     |
00007FF7B17E1B6A | 8B15 54B70000            | mov edx,dword ptr ds:[<union Data g_uni | FileName.cpp:146
00007FF7B17E1B70 | 48:8D0D B1920000         | lea rcx,qword ptr ds:[<"union num   : % | 00007FF7B17EAE28:"union num   : %d\n"
00007FF7B17E1B77 | E8 1EF6FFFF              | call project1.7FF7B17E119A              |
00007FF7B17E1B7C | 90                       | nop                                     |
00007FF7B17E1B7D | 33C0                     | xor eax,eax                             | FileName.cpp:148
00007FF7B17E1B7F | 8BF8                     | mov edi,eax                             | FileName.cpp:151
00007FF7B17E1B81 | 48:8D4D E0               | lea rcx,qword ptr ss:[rbp-20]           |
00007FF7B17E1B85 | 48:8D15 F4900000         | lea rdx,qword ptr ds:[7FF7B17EAC80]     | rdx:__enc$textbss$end+276
00007FF7B17E1B8C | E8 7BF7FFFF              | call project1.7FF7B17E130C              |
00007FF7B17E1B91 | 8BC7                     | mov eax,edi                             |
00007FF7B17E1B93 | 48:8B8D D8000000         | mov rcx,qword ptr ss:[rbp+D8]           |
00007FF7B17E1B9A | 48:33CD                  | xor rcx,rbp                             |
00007FF7B17E1B9D | E8 11F6FFFF              | call project1.7FF7B17E11B3              |
00007FF7B17E1BA2 | 48:8DA5 E8000000         | lea rsp,qword ptr ss:[rbp+E8]           |
00007FF7B17E1BA9 | 5F                       | pop rdi                                 |
00007FF7B17E1BAA | 5D                       | pop rbp                                 |
00007FF7B17E1BAB | C3                       | ret                                     |

其他案例请查看,aes解码,密钥123456789,密文U2FsdGVkX1/Bd4k8ZAij4D8oMKFwS3bBvmalzk3NT7UEJTw7/qemqhDLwG4nl9H9/nO3Xk0Ebmv0W50P9akHkb0F2ubxR31a6lldXh/T1P5UbUFht0mf2SUJwAKMq1bg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值