加密代码的编写

本文详细解析了一段使用汇编语言实现的加密代码,包括字节级和双字级的加密过程。通过对代码指令的逐行解读,展示了如何通过XOR操作进行数据加密,并介绍了循环及条件跳转指令的应用。

加密代码编写

004A1E6F     50                             push eax
004A1E70     53                             push ebx
004A1E71     51                             push ecx
004A1E72     52                             push edx
004A1E73     54                             push esp
004A1E74     55                             push ebp
004A1E75     56                             push esi
004A1E76     57                             push edi
004A1E77     E8 00000000            call Server.004A1E7C
004A1E7C     5D                            pop ebp
004A1E7D     81ED 7C1E4A00      sub ebp,Server.004A1E7C
004A1E83     BB 00104000            mov ebx,Server.00401000
004A1E88     03DD                        add ebx,ebp
004A1E8A     B9 00010000            mov ecx,100
004A1E8F     8033 98                     xor byte ptr ds:[ebx],98
004A1E92     43                              inc ebx
004A1E93     49                              dec ecx
004A1E94   ^ 75 F9                        jnz short Server.004A1E8F
004A1E96     5F                              pop edi   
004A1E97     5E                              pop esi
004A1E98     5D                             pop ebp
004A1E99     5C                             pop esp
004A1E9A     5A                            pop edx
004A1E9B     59                             pop ecx
004A1E9C     5B                             pop ebx
004A1E9D     58                             pop eax

pk:

004A1E4A     60                             pushad
004A1E4B     E8 00000000            call Server.004A1E50
004A1E50     5D                             pop ebp
004A1E51     81ED 501E4A00        sub ebp,Server.004A1E50
004A1E57     BB 00104000             mov ebx,Server.00401000       加密从00401000
004A1E5C     03DD                         add ebx,ebp
004A1E5E     B9 00010000              mov ecx,100                   大小为100
004A1E63     8033 98                       xor byte ptr ds:[ebx],98
004A1E66     43                                inc ebx
004A1E67     49                                dec ecx
004A1E68   ^ 75 F9                          jnz short Server.004A1E63
004A1E6A     61                               popad
-------------------------------淫荡的分割线--------------------------------------------

双字加密i:

0049305B >  53                           push    ebx                             
0049305C    51                             push    ecx
0049305D    BB 00104000           mov     ebx, 00401000
00493062    B9 2CD10100           mov     ecx, 0x1D12C
00493067    8133 07090900         xor     dword ptr [ebx], 0x90907
0049306D    83C3 04                   add     ebx, 0x4
00493070  ^ E2 F5                       loopd   short 00493067
00493072    59                             pop     ecx
00493073    5B                             pop     ebx
00493074    E8 00000000            call    00493079
00493079    832C24 3E                sub     dword ptr [esp], 0x3E
0049307D    C3                             retn

字加密部分:
0049303B    60                      pushad                                  
0049303C    BB 00104000     mov     ebx, 00401000
00493041    B9 59A20300     mov     ecx, 0x3A259
00493046    66:8133 2301     xor     word ptr [ebx], 0x123
0049304B    83C3 02             add     ebx, 0x2
0049304E    49                       dec     ecx
0049304F    75 F5                  jnz     short 00493046
00493051    61                      popad
00493052    90                      nop
00493053    68 00304900     push    00493000                        
00493058    C3                      retn

转载于:https://www.cnblogs.com/hackwang/p/6237344.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值