滴水逆向 手写一个裸函数实现加法
原创 0基础学逆向写一个裸函数实现三个任意参数加上三个任意局部变量的和。#includestdio.h #includestdlib.h int function(int a, int b, int c) { __asm { push ebp mov ebp, esp sub esp,0x40 push ebx push esi push edi // 初始化栈空间 mov eax,0xCCCCCCCC mov ecx,0x10 lea edi,dword ptr [ebp-0x40] rep stosd // 给局部变量赋值 mov dword ptr [ebp-0x4],2 mov dword ptr [ebp-0x8],3 mov dword ptr [ebp-0xC],4 // 计算总和 mov eax,dword ptr [ebp0x8] // a 1 add eax,dword ptr [ebp0xC] // a b 12 add eax,dword ptr [ebp0x10] // a b c 123 add eax,dword ptr [ebp-0x4] // 2 add eax,dword ptr [ebp-0x8] // 3 add eax,dword ptr [ebp-0xC] // 4 pop edi pop esi pop ebx mov esp, ebp pop ebp ret } } int main() { int m function(1,2,3); printf(%d, m); // 输出结果15 return 0; }