Fake shell
先看看init函数

这里面似乎有一个替换的,将aHappyhg4me 替换成新的字符串
进入主函数

进入sub_19E9
这里面有一个rc4
也包括了上文提到的aHappyhg4me
而aHappyhg4me在这里是作为一个key进行rc4解码


然后就可以直接开始写了,rc4也没有进行魔改
直接用网上的脚本就行了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| #include<stdio.h> #include<string.h> void rc4_init(unsigned char*s,unsigned char*key,unsigned long len) { int i=0; int j=0; unsigned char k[256]={0}; unsigned char temp = 0; for(i=0;i<256;i++) { s[i]=i; k[i]=key[i%len]; } for(i=0;i<256;i++) { j=(j+s[i]+k[i])%256; temp=s[i]; s[i]=s[j]; s[j]=temp; } }
void rc4_crypt(unsigned char*s,unsigned char*data,unsigned long len) { int i=0,j=0,t=0; unsigned long k=0; unsigned char temp; for(k=0;k<len;k++) { i=(i+1)%256; j=(j+s[i])%256; temp=s[i]; s[i]=s[j]; s[j]=temp; t=(s[i]+s[j])%256; data[k]^=s[t]; } }
int main() { long long v7[4]; v7[0] = 0xE0B25F3D8FFA94B6; v7[1] = 0xE79D6C9866D20FEA; v7[2] = 0x6D6FBEC57140081B; v7[3] = 0xF6F3BDA88D097B7C; char s[256]={0}; rc4_init(s,"w0wy0ugot1t",11); rc4_crypt(s,v7,32); int c; for(int i=0;i<=strlen(v7);i++) { for(int x=0;x<=8;x++) { c=(v7[i]>>(8*x))&0xff; printf("%c",c); } } }
|