首页
社区
课程
招聘
[原创]'Foxshell2016包含链接库解密算法 ---2020年新春礼物
发表于: 2020-1-12 12:18 2687

[原创]'Foxshell2016包含链接库解密算法 ---2020年新春礼物

2020-1-12 12:18
2687
'Foxshell2016包含链接库解密算法(foxshell2016解密难度在于它打乱了所有vfp9r.dll中的函数调用。让人无法知道以前那些readfile等函数地址。最无耻的办法就''是带call的全部下断。总会找到的。)vfp9开头字节。4d5a请具体查看vfp9r.dll的库文件内容,然后定位出那个内存是存放dll的。找到后下硬件断点。断下后就可'以按正常的调试方法来调试了。
'Foxshell2016解密要点。设置中断于dll加载。每次加载中断后查看内存。当有01300000内存建立起后。在031F2DF4(文件序号及大小)013E3C5C(文件名)13D51BA'(读文件)。'009C4897读取文件。'009C6BB3读取解码。'009C5505解码。以下为解码函数。找到内存后一般取最大的去掉前36个字节后就是加密后的app文件,写代'码解密即可。也可以搜索02160320来定位app找到后存成文件即可。
''009C5590    B8 2C000000     mov eax,2C   eax=2C就是KEY1
''009C5595    8BCE            mov ecx,esi  ecx=esi 读到第几个了
''009C5597    038D E4FEFFFF   add ecx,dword ptr ss:[ebp-11C]   ebp-11c存的是待解码基址
''009C559D    0FB609          movzx ecx,byte ptr ds:[ecx]    取待解字节给ecx
bm=ddata(eax)
''009C55A0    33C1            xor eax,ecx          eax=eax xor ecx
key2=key1 xor bm
'009C55A2    8BCE            mov ecx,esi    ecx=esi 读到第几了
'009C55A4    038D E4FEFFFF   add ecx,dword ptr ss:[ebp-11C] ebp-11c存的是待解码基址
'009C55AA    8801            mov byte ptr ds:[ecx],al   先把待解字节置为2c  al=2c
'009C55AC    B8 2C000000     mov eax,2C    eax=2c
'009C55B1    8B5D 14         mov ebx,dword ptr ss:[ebp+14]   取密码3地址给ebx
'009C55B4    0FB60B          movzx ecx,byte ptr ds:[ebx]     ds[ebx]=B6  取出密码给ecx
'009C55B7    33C1            xor eax,ecx   eax=2c xor b6
key4=key1 xor key3  '这里就直接设置成key4加快运算速度

'009C55B9    8B5D 14         mov ebx,dword ptr ss:[ebp+14]  取密码3地址给ebx 
'009C55BC    0FB60B          movzx ecx,byte ptr ds:[ebx]    ds[ebx]=B6  取出密码给ecx
'009C55BF    8945 D0         mov dword ptr ss:[ebp-30],eax   将key4的值存到ss:[ebp-30]这里理解就是key4
'009C55C2    B8 00010000     mov eax,100                      eax=100
'009C55C7    894D D4         mov dword ptr ss:[ebp-2C],ecx    ebp-2c处存放ecx就是B6
'009C55CA    8BCE            mov ecx,esi                    ecx=esi 读到第几了  
'009C55CC    038D E4FEFFFF   add ecx,dword ptr ss:[ebp-11C] ebp-11c存的是待解码基址
'009C55D2    0FB609          movzx ecx,byte ptr ds:[ecx]    ecx=2c前面写入的值
'009C55D5    03C1            add eax,ecx                    eax=eax+ecx 其实就是100+2c    
'009C55D7    3345 D4         xor eax,dword ptr ss:[ebp-2C]   把eax=eax xor b6   其实就是100+2c xor b6    al值 
'009C55DA    2B45 D0         sub eax,dword ptr ss:[ebp-30]   eax=eax-key4
'009C55DD    89C7            mov edi,eax     edi=eax
'009C55DF    81FF FF000000   cmp edi,0FF  和ff比较
'009C55E5    0F8E 17000000   jle '009C5602  小于则跳到sfa处 如果小于写入al值大于写入bl值
'009C55EB    8BC7            mov eax,edi   eax=edi
'009C55ED    81E8 00010000   sub eax,100  eax=eax-100
'009C55F3    8BCE            mov ecx,esi   ecx=esi 
'009C55F5    038D E4FEFFFF   add ecx,dword ptr ss:[ebp-11C] 
'009C55FB    8801            mov byte ptr ds:[ecx],al   回写al值 
'009C55FD    E9 0C000000     jmp '009C560E  跳到sfb
sfa:
'009C5602    8BC6            mov eax,esi eax=esi
'009C5604    0385 E4FEFFFF   add eax,dword ptr ss:[ebp-11C]
'009C560A    8BDF            mov ebx,edi
'009C560C    8818            mov byte ptr ds:[eax],bl  回写为bl
sfb
'009C560E    FFC6            inc esi   esi=esi+1
'009C5610    8BC6            mov eax,esi   eax=esi
'009C5612    3B85 58FFFFFF   cmp eax,dword ptr ss:[ebp-A8] 是否已经解完。解完就跳出。
'009C5618  ^ 0F8E 72FFFFFF   jle '009C5590

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 175
活跃值: (2501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Foxshell2016包楼主能否提供个下载。谢谢
2020-1-13 08:43
0
游客
登录 | 注册 方可回帖
返回
//