首页
社区
课程
招聘
[讨论]ccfer-cm2009讨论
发表于: 2009-10-1 23:37 10429

[讨论]ccfer-cm2009讨论

2009-10-1 23:37
10429
收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-3-10 00:04
伟叔叔
为你点赞~
2024-1-6 03:37
QinBeast
为你点赞~
2024-1-3 05:05
PLEBFE
为你点赞~
2023-11-14 00:48
shinratensei
为你点赞~
2023-11-14 00:07
心游尘世外
为你点赞~
2023-11-1 00:36
飘零丶
为你点赞~
2023-10-4 00:20
最新回复 (15)
雪    币: 9
活跃值: (142)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
2
vm..................
2009-10-2 03:56
0
雪    币: 351
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
surport!!!
2009-10-2 09:25
0
雪    币: 8209
活跃值: (4559)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
4
这个附件去花去vm了:
上传的附件:
2009-10-2 11:22
0
雪    币: 107
活跃值: (2087)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
和upx-d结果不同,是没加VM的,不是加了后去掉VM的
2009-10-2 11:58
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
6
这个以后校验用吧,以后再研究算法,算法估计搞不定。先看能不能还原vm
2009-10-2 12:18
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
7
vm_optalbe地址还原idc脚本
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
#include <idc.idc>
 
static decrypt(from,size)
{
  auto i;
  auto value;
  for ( i=0; i < size; i=i+1 )
  {
    value=Dword(from+i*4);
    Message("%x:%x",from+i*4,value);
    if(value!=0)
    {
        value++;
        Message("=>%x",value);
        value=rotate_dword(value,30);
        Message("=>%x",value);
        value=value^0xffffffff;
        Message("=>%x",value);
        value=value^0x7AC2D8AA;
        Message("=>%x",value);
        if(value!=BADADDR)
        {
          //MakeNameEx(value,form("vm_opcode_%d",i),0x100);
          //MakeRptCmt(from+i*4,form("%08x",value));
                  PatchDword(from+i*4,value);
        }
    }
  }
}
 
static main(void) {
  auto vm_table_addr;
  vm_table_addr = 0x406000;
  //vm_table_addr = AskAddr(here, "Please enter the vm_table_addr");
  //vm_table_addr = ScreenEA();
  if ( vm_table_addr == BADADDR ) return;
  decrypt(vm_table_addr,256);
}
2009-10-2 12:25
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
用cc提供的注册码,跟了遍注册流程,后面都是猜测的,以后修正.类c表示如下。

#define ROL(val,n)   ((val>>(32-n))|(val<<n))

DWORD size[8]={0x1620,0x973,0x1402,0x1438,0x9a9,0x14a3,0x14d9,0xc9c,0xd19};
DWORD keycrc=0x0;//40440c
DWORD baseptr=0x401000;
DWORD crcval=0;

unsigned char name[16]="shellwolf";
unsigned char sn[60]="1C1A9961EBFC090050F1D2FA9B5F272C92D51E590D7A37576EAEB80000";//12d7f0
DWORD nameval;
int namelen,snlen;
BYTE snx[1000];
BYTE  buff[1032];

void onbtnclick()
{
    int tmpi;

    //1.crc=>keysrc
    for(tmpi=0;tmpi<7;tmpi++)
    {
        crcval=crc32(baseptr,size[i]);//E779BC52//4386092B
        crcval=~crcval;//188643AD//BC79F6D4
        keycrc^=crcval;//188643AD
        keycrc+=size[i]+baseptr-0x100;//18C668CD
    }

    //2.getname
    nameval=0x0;//keycrc=0x7a08383e;
    namelen=GetDlgItemText(IDC_name,&name[0],);//0x3e8
    if(namelen<3||namelen>0x20)
        return;
    //namehash
    for(tmpi=0;tmpi<namelen;tmpi++)//401a39
    {
        nameval+=name[tmpi];
        nameval=ROL(nameval,3)^keycrc;
    }//nameval=0x50356f68

    //3.getsn
    snlen=GetDlgItemText(IDC_sn,&sn[0],);//0x3e9
    if(snlen<0x10||snlen>0x40)
        return;
    for(tmpi=0;tmpi<snlen;tmpi++)//401966
    {
        if(!isxdigit(sn[tmpi]))
            return;
    }

    //4.set buff for vm
    memset(&snx[0],0,996);//0x12d40c
    memset(&buff[0],0,1032);//0x12d004
    for(tmpi=0;tmpi<snlen/2;tmpi++)
        sscanf(&sn[tmpi*2],"%02x",&snx[tmpi]);
    if((snlen/2-1)!=snx[0])
        return;
    else
        buff[0]=snx[0];//snlen/2-1
    //5.crc & vm1
    for(tmpi=7;tmpi<8;tmpi++)//401b97//1993?401110
    {
        crcval=crc32(baseptr,size[tmpi]);
        crcval=~crcval;
        keycrc^=crcval;//EDDEEA7F
        keycrc+=size[tmpi]+baseptr-0x100;//EE1F061B
    }
    enter_vm(0xCD1BD9CD);//4020d6
    //6.crc & vm2
    for(tmpi=8;tmpi<9;tmpi++)
    {
        crcval=crc32(baseptr,size[tmpi]);////778b992d
        crcval=~crcval;////887466D2
        keycrc^=crcval;//666B60C9
        keycrc+=size[tmpi]+baseptr-0x100;//66AB7CE2
    }
    if(enter_vm(0xA78AD9CD)==0x00)//00407384=>402400
        return;
    //7.messgebox
    if(*(DWORD *)(&buff[0])==nameval)
    {
        strcpy(&sn[0],"pediy cm 2009");
        MessageBoxA(&buff[8],&sn[0],0);//0x12d00c
    }
}

vm_optable,可能很多不对,都时猜的,只是个临时标记。好像以前跟过这个版本的,vmp1.65?

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
UPX0:00406000 vm_optable      dd offset vm_pushimm    ; 0 ; DATA XREF: sub_4066E7+F72r
UPX0:00406000                                         ; UPX0:00407C3Fr ...
UPX0:00406000                 dd offset vm_imul       ; 1
UPX0:00406000                 dd offset vm_retn       ; 2
UPX0:00406000                 dd offset vm_shr        ; 3
UPX0:00406000                 dd offset vm_movb_B_AA  ; 4
UPX0:00406000                 dd offset vm_pushb_reg  ; 5
UPX0:00406000                 dd offset vm_shlf       ; 6
UPX0:00406000                 dd offset vm_mov_AA_A1  ; 7
UPX0:00406000                 dd offset vm_shiftadd   ; 8
UPX0:00406000                 dd offset vm_pop_reg    ; 9
UPX0:00406000                 dd offset vm_movb_B_AA_0; 10
UPX0:00406000                 dd offset vm_movw_AA_A  ; 11
UPX0:00406000                 dd offset vm_mov_AA_A   ; 12
UPX0:00406000                 dd offset vm_movb_B_AA_0; 13
UPX0:00406000                 dd offset vm_rdtsc      ; 14
UPX0:00406000                 dd offset vm_shrd       ; 15
UPX0:00406000                 dd offset vm_pushespw_0 ; 16
UPX0:00406000                 dd offset vm_imul       ; 17
UPX0:00406000                 dd offset vm_shlf       ; 18
UPX0:00406000                 dd offset vm_addb_A_B   ; 19
UPX0:00406000                 dd offset vm_pushimmw   ; 20
UPX0:00406000                 dd offset vm_popw_reg   ; 21
UPX0:00406000                 dd offset vm_shiftadd   ; 22
UPX0:00406000                 dd offset vm_push_immb  ; 23
UPX0:00406000                 dd offset vm_rdtsc      ; 24
UPX0:00406000                 dd offset vm_mov_AA_A   ; 25
UPX0:00406000                 dd offset vm_pushimm    ; 26
UPX0:00406000                 dd offset vm_mov_AA_A   ; 27
UPX0:00406000                 dd offset vm_divw       ; 28
UPX0:00406000                 dd offset vm_mov_AA_B   ; 29
UPX0:00406000                 dd offset vm_shlb       ; 30
UPX0:00406000                 dd offset loc_40721F    ; 31
UPX0:00406000                 dd offset vm_popx       ; 32
UPX0:00406000                 dd offset vm_shiftadd   ; 33
UPX0:00406000                 dd offset vm_popx       ; 34
UPX0:00406000                 dd offset vm_nand       ; 35
UPX0:00406000                 dd offset vm_popx       ; 36
UPX0:00406000                 dd offset vm_popw_reg   ; 37
UPX0:00406000                 dd offset vm_popx       ; 38
UPX0:00406000                 dd offset vm_imul       ; 39
UPX0:00406000                 dd offset vm_popx       ; 40
UPX0:00406000                 dd offset vm_mov_B_AA   ; 41
UPX0:00406000                 dd offset vm_popx       ; 42
UPX0:00406000                 dd offset vm_shld       ; 43
UPX0:00406000                 dd offset vm_popx       ; 44
UPX0:00406000                 dd offset vm_nandb      ; 45
UPX0:00406000                 dd offset vm_popx       ; 46
UPX0:00406000                 dd offset vm_nandw      ; 47
UPX0:00406000                 dd offset vm_popx       ; 48
UPX0:00406000                 dd offset vm_mov_AA_A   ; 49
UPX0:00406000                 dd offset vm_popx       ; 50
UPX0:00406000                 dd offset vm_push_esp   ; 51
UPX0:00406000                 dd offset vm_popx       ; 52
UPX0:00406000                 dd offset vm_pushespw_0 ; 53
UPX0:00406000                 dd offset vm_popx       ; 54
UPX0:00406000                 dd offset vm_mul        ; 55
UPX0:00406000                 dd offset vm_popx       ; 56
UPX0:00406000                 dd offset vm_pushw_reg  ; 57
UPX0:00406000                 dd offset vm_popx       ; 58
UPX0:00406000                 dd offset vm_movb_AA_A  ; 59
UPX0:00406000                 dd offset vm_popx       ; 60
UPX0:00406000                 dd offset vm_shlf       ; 61
UPX0:00406000                 dd offset vm_popx       ; 62
UPX0:00406000                 dd offset vm_rdtsc      ; 63
UPX0:00406000                 dd offset vm_pushx      ; 64
UPX0:00406000                 dd offset vm_shrd       ; 65
UPX0:00406000                 dd offset vm_pushx      ; 66
UPX0:00406000                 dd offset vm_pushimmw   ; 67
UPX0:00406000                 dd offset vm_pushx      ; 68
UPX0:00406000                 dd offset vm_pushimm    ; 69
UPX0:00406000                 dd offset vm_pushx      ; 70
UPX0:00406000                 dd offset vm_movw_AA_A_0; 71
UPX0:00406000                 dd offset vm_pushx      ; 72
UPX0:00406000                 dd offset vm_push_immb  ; 73
UPX0:00406000                 dd offset vm_pushx      ; 74
UPX0:00406000                 dd offset vm_popw_reg   ; 75
UPX0:00406000                 dd offset vm_pushx      ; 76
UPX0:00406000                 dd offset vm_mulw       ; 77
UPX0:00406000                 dd offset vm_pushx      ; 78
UPX0:00406000                 dd offset vm_movw_B_AA  ; 79
UPX0:00406000                 dd offset vm_pushx      ; 80
UPX0:00406000                 dd offset vm_shlw       ; 81
UPX0:00406000                 dd offset vm_pushx      ; 82
UPX0:00406000                 dd offset vm_shrb       ; 83
UPX0:00406000                 dd offset vm_pushx      ; 84
UPX0:00406000                 dd offset vm_pushimm    ; 85
UPX0:00406000                 dd offset vm_pushx      ; 86
UPX0:00406000                 dd offset vm_pushw_immw ; 87
UPX0:00406000                 dd offset vm_pushx      ; 88
UPX0:00406000                 dd offset vm_pushimmw   ; 89
UPX0:00406000                 dd offset vm_pushx      ; 90
UPX0:00406000                 dd offset vm_addw_A_B   ; 91
UPX0:00406000                 dd offset vm_pushx      ; 92
UPX0:00406000                 dd offset vm_shld       ; 93
UPX0:00406000                 dd offset vm_pushx      ; 94
UPX0:00406000                 dd offset vm_shr        ; 95
UPX0:00406000                 dd offset vm_shrw       ; 96
UPX0:00406000                 dd offset vm_rdtsc      ; 97
UPX0:00406000                 dd offset vm_mul        ; 98
UPX0:00406000                 dd offset vm_shrb       ; 99
UPX0:00406000                 dd offset vm_movb_B_AA  ; 100
UPX0:00406000                 dd offset vm_jmp        ; 101
UPX0:00406000                 dd offset vm_movb_B_AA_0; 102
UPX0:00406000                 dd offset vm_shlf       ; 103
UPX0:00406000                 dd offset vm_shld       ; 104
UPX0:00406000                 dd offset vm_shlb       ; 105
UPX0:00406000                 dd offset vm_pop_reg    ; 106
UPX0:00406000                 dd offset vm_imul       ; 107
UPX0:00406000                 dd offset vm_shlb       ; 108
UPX0:00406000                 dd offset vm_movb_B_AA_0; 109
UPX0:00406000                 dd offset loc_40721F    ; 110
UPX0:00406000                 dd offset vm_shrw       ; 111
UPX0:00406000                 dd offset vm_imul       ; 112
UPX0:00406000                 dd offset vm_addf_a_b   ; 113
UPX0:00406000                 dd offset vm_shlb       ; 114
UPX0:00406000                 dd offset vm_shlb       ; 115
UPX0:00406000                 dd offset vm_retn       ; 116
UPX0:00406000                 dd offset vm_movw_AA_A  ; 117
UPX0:00406000                 dd offset vm_movb_AA_A  ; 118
UPX0:00406000                 dd offset vm_pop_reg    ; 119
UPX0:00406000                 dd offset vm_shrd       ; 120
UPX0:00406000                 dd offset vm_nandb      ; 121
UPX0:00406000                 dd offset vm_addw_A_B   ; 122
UPX0:00406000                 dd offset vm_nandb      ; 123
UPX0:00406000                 dd offset vm_movb_B_AA_0; 124
UPX0:00406000                 dd offset vm_shrd       ; 125
UPX0:00406000                 dd offset vm_nandb      ; 126
UPX0:00406000                 dd offset vm_shrw       ; 127
UPX0:00406000                 dd offset vm_addf_a_b   ; 128
UPX0:00406000                 dd offset vm_nandb      ; 129
UPX0:00406000                 dd offset vm_shrd       ; 130
UPX0:00406000                 dd offset vm_movw_B_AA_0; 131
UPX0:00406000                 dd offset vm_mulw       ; 132
UPX0:00406000                 dd offset vm_shiftadd   ; 133
UPX0:00406000                 dd offset vm_shlf       ; 134
UPX0:00406000                 dd offset vm_shrw       ; 135
UPX0:00406000                 dd offset vm_shrw       ; 136
UPX0:00406000                 dd offset vm_pushimm    ; 137
UPX0:00406000                 dd offset vm_shiftadd   ; 138
UPX0:00406000                 dd offset vm_movw_AA_A_0; 139
UPX0:00406000                 dd offset vm_movw_B_AA_0; 140
UPX0:00406000                 dd offset vm_pushimm    ; 141
UPX0:00406000                 dd offset vm_movb_AA_A  ; 142
UPX0:00406000                 dd offset vm_movw_B_AA  ; 143
UPX0:00406000                 dd offset vm_shld       ; 144
UPX0:00406000                 dd offset vm_movw_B_AA  ; 145
UPX0:00406000                 dd offset vm_movw_AA_A  ; 146
UPX0:00406000                 dd offset vm_imul       ; 147
UPX0:00406000                 dd offset vm_addw_A_B   ; 148
UPX0:00406000                 dd offset vm_nandb      ; 149
UPX0:00406000                 dd offset vm_movw_AA_A_1; 150
UPX0:00406000                 dd offset vm_pushespw   ; 151
UPX0:00406000                 dd offset vm_addw_A_B   ; 152
UPX0:00406000                 dd offset vm_shr        ; 153
UPX0:00406000                 dd offset vm_movw_AA_A_0; 154
UPX0:00406000                 dd offset vm_movb_B_AA  ; 155
UPX0:00406000                 dd offset vm_shrb       ; 156
UPX0:00406000                 dd offset vm_mulw       ; 157
UPX0:00406000                 dd offset vm_mov_AA_A   ; 158
UPX0:00406000                 dd offset vm_nand       ; 159
UPX0:00406000                 dd offset vm_addf_a_b   ; 160
UPX0:00406000                 dd offset vm_pushespw   ; 161
UPX0:00406000                 dd offset vm_shlb       ; 162
UPX0:00406000                 dd offset vm_shlb       ; 163
UPX0:00406000                 dd offset vm_shrb       ; 164
UPX0:00406000                 dd offset loc_40721F    ; 165
UPX0:00406000                 dd offset vm_shrb       ; 166
UPX0:00406000                 dd offset vm_shrw       ; 167
UPX0:00406000                 dd offset vm_mov_AA_A   ; 168
UPX0:00406000                 dd offset vm_pushb_reg  ; 169
UPX0:00406000                 dd offset vm_addw_A_B   ; 170
UPX0:00406000                 dd offset vm_pushespw_0 ; 171
UPX0:00406000                 dd offset loc_40721F    ; 172
UPX0:00406000                 dd offset vm_addw_A_B   ; 173
UPX0:00406000                 dd offset vm_movw_AA_A_1; 174
UPX0:00406000                 dd offset vm_pushw_reg  ; 175
UPX0:00406000                 dd offset vm_movb_AA_A  ; 176
UPX0:00406000                 dd offset vm_movb_B_AA  ; 177
UPX0:00406000                 dd offset vm_mov_AA_A   ; 178
UPX0:00406000                 dd offset vm_addw_A_B   ; 179
UPX0:00406000                 dd offset vm_jmp        ; 180
UPX0:00406000                 dd offset vm_pushw_immw ; 181
UPX0:00406000                 dd offset vm_shlf       ; 182
UPX0:00406000                 dd offset vm_pushimm    ; 183
UPX0:00406000                 dd offset vm_divw       ; 184
UPX0:00406000                 dd offset vm_mul        ; 185
UPX0:00406000                 dd offset vm_mov_AA_A   ; 186
UPX0:00406000                 dd offset vm_shlb       ; 187
UPX0:00406000                 dd offset vm_movw_B_AA  ; 188
UPX0:00406000                 dd offset vm_mov_B_AA   ; 189
UPX0:00406000                 dd offset vm_popw_reg   ; 190
UPX0:00406000                 dd offset vm_retn       ; 191
UPX0:00406000                 dd offset vm_pushespw   ; 192
UPX0:00406000                 dd offset vm_shr        ; 193
UPX0:00406000                 dd offset vm_movw_AA_A_0; 194
UPX0:00406000                 dd offset vm_pushimmw   ; 195
UPX0:00406000                 dd offset vm_pushb_reg  ; 196
UPX0:00406000                 dd offset vm_shiftadd   ; 197
UPX0:00406000                 dd offset vm_shlf       ; 198
UPX0:00406000                 dd offset vm_shld       ; 199
UPX0:00406000                 dd offset vm_shlf       ; 200
UPX0:00406000                 dd offset vm_pushesp    ; 201
UPX0:00406000                 dd offset vm_retn       ; 202
UPX0:00406000                 dd offset vm_push_esp   ; 203
UPX0:00406000                 dd offset vm_shiftadd   ; 204
UPX0:00406000                 dd offset vm_push_esp   ; 205
UPX0:00406000                 dd offset vm_pushb_reg  ; 206
UPX0:00406000                 dd offset vm_movw_AA_A_1; 207
UPX0:00406000                 dd offset vm_movw_B_AA  ; 208
UPX0:00406000                 dd offset vm_popw_reg   ; 209
UPX0:00406000                 dd offset vm_movw_AA_A  ; 210
UPX0:00406000                 dd offset vm_movw_B_AA  ; 211
UPX0:00406000                 dd offset vm_shlb       ; 212
UPX0:00406000                 dd offset vm_movw_AA_A_1; 213
UPX0:00406000                 dd offset vm_shrb       ; 214
UPX0:00406000                 dd offset vm_push_esp   ; 215
UPX0:00406000                 dd offset vm_movw_B_AA_0; 216
UPX0:00406000                 dd offset vm_movw_B_AA_0; 217
UPX0:00406000                 dd offset vm_movb_B_AA_0; 218
UPX0:00406000                 dd offset vm_mov_B_AA   ; 219
UPX0:00406000                 dd offset vm_shlw       ; 220
UPX0:00406000                 dd offset vm_addf_a_b   ; 221
UPX0:00406000                 dd offset vm_shrb       ; 222
UPX0:00406000                 dd offset vm_movb_AA_A  ; 223
UPX0:00406000                 dd offset vm_imul       ; 224
UPX0:00406000                 dd offset vm_movb_AA_A  ; 225
UPX0:00406000                 dd offset vm_pushespw   ; 226
UPX0:00406000                 dd offset vm_mov_AA_A   ; 227
UPX0:00406000                 dd offset vm_divw       ; 228
UPX0:00406000                 dd offset vm_divw       ; 229
UPX0:00406000                 dd offset vm_movw_AA_A_0; 230
UPX0:00406000                 dd offset vm_shlf       ; 231
UPX0:00406000                 dd offset vm_rdtsc      ; 232
UPX0:00406000                 dd offset vm_movw_AA_A_0; 233
UPX0:00406000                 dd offset vm_mov_B_AA   ; 234
UPX0:00406000                 dd offset vm_mov_AA_A1  ; 235
UPX0:00406000                 dd offset vm_movw_B_AA  ; 236
UPX0:00406000                 dd offset vm_pushimmw   ; 237
UPX0:00406000                 dd offset vm_pop_reg    ; 238
UPX0:00406000                 dd offset vm_jmp        ; 239
UPX0:00406000                 dd offset vm_nandw      ; 240
UPX0:00406000                 dd offset vm_addb_A_B   ; 241
UPX0:00406000                 dd offset vm_mulw       ; 242
UPX0:00406000                 dd offset vm_movw_AA_A_0; 243
UPX0:00406000                 dd offset vm_push_immb  ; 244
UPX0:00406000                 dd offset vm_movb_B_AA_0; 245
UPX0:00406000                 dd offset vm_jmp        ; 246
UPX0:00406000                 dd offset vm_pop_reg    ; 247
UPX0:00406000                 dd offset vm_shld       ; 248
UPX0:00406000                 dd offset vm_movw_AA_A  ; 249
UPX0:00406000                 dd offset vm_shrd       ; 250
UPX0:00406000                 dd offset vm_mov_AA_A1  ; 251
UPX0:00406000                 dd offset vm_pushespw   ; 252
UPX0:00406000                 dd offset vm_shlf       ; 253
UPX0:00406000                 dd offset vm_mov_AA_A1  ; 254
UPX0:00406000                 dd offset vm_nandb      ; 255


自言自语?:(
发现两个奇怪的vm指令,vm_rdtsc,和vm_shiftadd.
rdtsc似乎只有几个用处,1、随机数,2、反调试
shiftadd用于代码自校验?
2009-10-2 19:45
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
9
帮老哥及老哥的老婆顶一下帖

你上面列出的256个你全进去看了一次标出来的 ?
2009-10-2 22:35
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
10
lp不喜欢crack。
其实没有256个。就几十个。多数是ida下猜的,有些猜不出来,就用OD跟了下。
还没敢进vm里看看,一直在犹豫,精力有限,怕进去后耽误太多时间。
2009-10-2 22:41
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
11
目前大家都是卡在多条的VM指令换成一个适当的PCode
这技术若没人发布的话, 永远都是人肉

看VM..我很懒,连标都不标. 白吃简单型的算法还能在脑中半懂半猜
再上去...战斗力'幸运度'智力都下降为0了

一起等吧.
2009-10-2 22:51
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
12
高版本的vmp可降级为vmp1.2,vmp1.2的可以多条转单条。
高手都不标,看内存变化就可以了,我也期望能这样。我只能笨方法,标签转到od下,再用脚本看流程。
有点疲惫,今天不看了。明天后天上不了网,假期要被这个cm折磨了。
2009-10-2 23:10
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
13
另外, 比赛放出的exe我在VM里有看到:

序号 -> 十六进制 , 第0个byte的作用就如你列出的程序码  :
  if((snlen/2-1)!=snx[0])

再下去有 sn[1]= sn[1]^sn[最后]     
           sn[2]= sn[2]^sn[最后-1]
           sn[3]= sn[3]^sn[最后-2]
          .....
           ....
          and 另一个byte的 xor
(东西全删了, xor 的 i 可能不是写得完全正确, 但大体上我有看到这动作.)

可是你上面的程序码里并没写出这步, 是我看错了 ?
2009-10-2 23:13
0
雪    币: 2317
活跃值: (129)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=sessiondiy;694881]另外, 比赛放出的exe我在VM里有看到:

序号 -> 十六进制 , 第0个byte的作用就如你列出的程序码  :
  if((snlen/2-1)!=snx[0])

再下去有 sn[1]= sn[1]^sn[最后]     
           sn[2]= sn[2]^sn[最后-1]
...[/QUOTE]

你应该不会看错,我还没进vm里,你看到的估计都在vm里。多谢,我去看看。
“if((snlen/2-1)!=snx[0])”这个应该是在vm外。
2009-10-2 23:22
0
雪    币: 13893
活跃值: (4852)
能力值: ( LV15,RANK:1673 )
在线值:
发帖
回帖
粉丝
15
玩这个一个字"累"...无奈...水平有限...玩不动...只有看大虾们表演了...
大虾们Go On And ,.On...
2009-10-3 01:05
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
16
有系统的整理是正确的, 期待你假期之后的成果分享

VMP的动作都是固定的.
用滴猎Dbg的无限断点应该就好还原原始指令动作了.

f-.- 忘了滴猎有没有支援脚本

rdtsc我曾见过用于ANTI, 在rdtsc之前会先判断即将要调用的API的第一个Byte是否为CC (全被VM了)
(我看的VMP Target没几个,所以是否VMP自动加入的ANTI我就不知了)
2009-10-3 13:33
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册