北斗4.1壳改壳之二 加花指令
摘自:jgaoabc的空间
接《用等价替换代码法修改北斗4.1壳》,我们继续对其进行免杀,这就是加花指令,我们要加的花指令不是世面上常见的,我们加的花指令具有实际操作功能的,并且模拟加壳软件一些动作的,主要目的是让杀软搞不清楚什么东东。首先寻找空区域,加了北斗壳之后,程序空区域很少,那我们就来改吧,可以修改成空区域的有版本和图标段,这二段都在程序的开头部分,这样修改之后不影响程序运行。就修改版本吧,用C32ASM打开压缩文件,在开始的地方往下一点就是版本的位置,它是一个字符接一个00结构的,选取一段填充00,然后添加如下代码:
0043A1A6 > 60 pushad 现入口点
0043A1A7 E8 00000000 call Server_0.0043A1AC
0043A1AC 5D pop ebp
0043A1AD 83C5 10 add ebp,10
0043A1B0 3E:8D45 56 lea eax,dword ptr ds:[ebp+56]
0043A1B4 8B8D 5C030000 mov ecx,dword ptr ss:[ebp+35C]
0043A1BA 36:8B18 mov ebx,dword ptr ss:[eax]
0043A1BD 53 push ebx
0043A1BE 51 push ecx
0043A1BF 6A 01 push 1
0043A1C1 899D 5C030000 mov dword ptr ss:[ebp+35C],ebx
0043A1C7 8B8D 6C050000 mov ecx,dword ptr ss:[ebp+56C]
0043A1CD 51 push ecx
0043A1CE 03D8 add ebx,eax
0043A1D0 3E:895D 56 mov dword ptr ds:[ebp+56],ebx
0043A1D4 8A5D E9 mov bl,byte ptr ss:[ebp-17]
0043A1D7 80FB 00 cmp bl,0
0043A1DA ^ 75 E1 jnz short Server_0.0043A1BD
0043A1DC 8D4D 40 lea ecx,dword ptr ss:[ebp+40]
0043A1DF 58 pop eax
0043A1E0 8985 6C050000 mov dword ptr ss:[ebp+56C],eax
0043A1E6 5B pop ebx
0043A1E7 03D8 add ebx,eax
0043A1E9 59 pop ecx
0043A1EA 898D 5C030000 mov dword ptr ss:[ebp+35C],ecx
0043A1F0 58 pop eax
0043A1F1 3E:8945 56 mov dword ptr ds:[ebp+56],eax
0043A1F5 8A5D E8 mov bl,byte ptr ss:[ebp-18]
0043A1F8 80FB 00 cmp bl,0
0043A1FB 61 popad
0043A1FC 0F84 18080000 je Server_0.0043AA1A 原入口点
直接用二进制粘贴,二进制代码为:
60 E8 00 00 00 00 5D 83 C5 10 3E 8D 45 56 8B 8D 5C 03 00 00 36 8B 18 53 51 6A 01 89 9D 5C 03 00 00 8B 8D 6C 05 00 00 51 03 D8 3E 89 5D 56 8A 5D E9 80 FB 00 75 E1 8D 4D 40 58 89 85 6C 05 00 00 5B 03 D8 59 89 8D 5C 03 00 00 58 3E 89 45 56 8A 5D E8 80 FB 00 61 0F 84 18 08 00 00
注意最后一句要修改成程序的原入口点的,然后再用LOADPE修改程序的入口点为新入口点,这样就OK了。还可以在最后一句后面任意添加一些代码,这些代码是不会执行的,主要为迷惑杀毒软件用的。还可以将跳到入口点的指令放到后面的废代码中间,这样更有迷惑性.
至于花指令是什么意思,你们自己理解,主要是将软件的一些值通过寄存器存储后变化掉,然后再通过寄存器的存储,再重新变回来。(ebp-17)和(ebp-18)是程序入口点的上二位,要确保是00。
版本段例子:
上一篇: 9999元!锤子坚果TNT工作站+坚果R1手机绝配:革命性交互
下一篇: 代码逆向乱谈之导引