纯汇编如何获得LoadLibrary地址和实现GetProcAddress? 100分求教---***

Happy0403 Happy0403 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我有代码,可是不懂汇编,看不懂。
想做个远程程序注入的,不想靠Dll,想直接写代码,不过如果用C++直接写成程序的话,代码太大。
所以我想到了用汇编实现一些简单的代码。

哪位牛人帮我解释下一下代码:

函数:(实现GetProcAddress的功能)
00400164 60 pushad
00400165 8B6C24 24 mov ebp,dword ptr ss:[esp+24]
00400169 8B45 3C mov eax,dword ptr ss:[ebp+3C]
0040016C 8B7C05 78 mov edi,dword ptr ss:[ebp+eax+78]
00400170 01EF add edi,ebp
00400172 8B4F 18 mov ecx,dword ptr ds:[edi+18]
00400175 8B5F 20 mov ebx,dword ptr ds:[edi+20]
00400178 01EB add ebx,ebp
0040017A 49 dec ecx
0040017B 8B348B mov esi,dword ptr ds:[ebx+ecx*4]
0040017E 01EE add esi,ebp
00400180 31C0 xor eax,eax
00400182 99 cdq
00400183 AC lods byte ptr ds:[esi]
00400184 84C0 test al,al
00400186 74 07 je short SmallLea.0040018F
00400188 C1CA 0D ror edx,0D
0040018B 01C2 add edx,eax
0040018D ^ EB F4 jmp short SmallLea.00400183
0040018F 3B5424 28 cmp edx,dword ptr ss:[esp+28]
00400193 ^ 75 E5 jnz short SmallLea.0040017A
00400195 8B5F 24 mov ebx,dword ptr ds:[edi+24]
00400198 01EB add ebx,ebp
0040019A 66:8B0C4B mov cx,word ptr ds:[ebx+ecx*2]
0040019E 8B5F 1C mov ebx,dword ptr ds:[edi+1C]
004001A1 01EB add ebx,ebp
004001A3 032C8B add ebp,dword ptr ds:[ebx+ecx*4]
004001A6 896C24 1C mov dword ptr ss:[esp+1C],ebp
004001AA 61 popad
004001AB C3 retn


调用代码:

004001AC 31DB xor ebx,ebx
004001AE 64:8B43 30 mov eax,dword ptr fs:[ebx+30]
004001B2 8B40 0C mov eax,dword ptr ds:[eax+C]
004001B5 8B70 1C mov esi,dword ptr ds:[eax+1C]
004001B8 AD lods dword ptr ds:[esi]
004001B9 8B40 08 mov eax,dword ptr ds:[eax+8]
004001BC 5E pop esi
004001BD 68 8E4E0EEC push EC0E4E8E
004001C2 50 push eax
004001C3 FFD6 call esi ; 汇编实现的GetProcAddress
004001C5 66:53 push bx
004001C7 66:68 3332 push 3233
004001CB 68 7773325F push 5F327377
004001D0 54 push esp
004001D1 FFD0 call eax ; LoadLibrary("ws2_32");
004001D3 68 CBEDFC3B push 3BFCEDCB
004001D8 50 push eax
004001D9 FFD6 call esi ; 汇编实现的GetProcAddress
004001DB 5F pop edi
004001DC 89E5 mov ebp,esp
004001DE 66:81ED 0802 sub bp,208
004001E3 55 push ebp
004001E4 6A 02 push 2
004001E6 FFD0 call eax ; ws2_32.WSAStartup(2);
004001E8 68 D909F5AD push ADF509D9
004001ED 57 push edi
004001EE FFD6 call esi ; SmallLea.00400164
...全文
评论 13
收藏 已收藏
分享
返回顶部
Happy0403
汇编语言 21,500 成员 41,619 内容