能力值:
(RANK:570 )
|
-
-
2 楼
道理是一样的,但是并不是每个人都会变通
|
能力值:
( LV12,RANK:210 )
|
-
-
3 楼
谁告诉你没壳
|
能力值:
( LV12,RANK:210 )
|
-
-
4 楼
是个猛壳
你给的exe没有附加的dll如qtintf.dll等, 不好调
他用了createfile, writefile, readfile, getfilesize等操作
你可以下短点看下就行.
但记得, 打个rdtsc的插件. 要不然你死的很难看
还有, 断api短点的时候, 一定不能在第一条语句下断.
下列是检测自己的地方
0058506F 68 20030000 PUSH 320
00585074 8DBD F91B4000 LEA EDI,DWORD PTR SS:[EBP+401BF9]
0058507A 57 PUSH EDI
0058507B 6A 00 PUSH 0
0058507D FF95 A8014100 CALL DWORD PTR SS:[EBP+4101A8]
00585083 6A 00 PUSH 0
00585085 68 80000000 PUSH 80
0058508A 6A 03 PUSH 3
0058508C 6A 00 PUSH 0
0058508E 6A 01 PUSH 1
00585090 68 00000080 PUSH 80000000
00585095 57 PUSH EDI
00585096 FF95 04014100 CALL DWORD PTR SS:[EBP+410104]
0058509C 40 INC EAX
0058509D 0F84 9B000000 JE HxVodCli.0058513E
005850A3 48 DEC EAX
005850A4 8BF8 MOV EDI,EAX
005850A6 6A 00 PUSH 0
005850A8 57 PUSH EDI
005850A9 FF95 BF014100 CALL DWORD PTR SS:[EBP+4101BF]
005850AF 2B85 B7D84100 SUB EAX,DWORD PTR SS:[EBP+41D8B7]
005850B5 96 XCHG EAX,ESI
005850B6 56 PUSH ESI
005850B7 6A 40 PUSH 40
005850B9 FF95 D8004100 CALL DWORD PTR SS:[EBP+4100D8]
005850BF 85C0 TEST EAX,EAX
005850C1 74 72 JE SHORT HxVodCli.00585135
005850C3 90 NOP
005850C4 90 NOP
005850C5 90 NOP
005850C6 90 NOP
005850C7 93 XCHG EAX,EBX
005850C8 6A 00 PUSH 0
005850CA 8D85 F91B4000 LEA EAX,DWORD PTR SS:[EBP+401BF9]
005850D0 50 PUSH EAX
005850D1 56 PUSH ESI
005850D2 53 PUSH EBX
005850D3 57 PUSH EDI
005850D4 FF95 28014100 CALL DWORD PTR SS:[EBP+410128]
005850DA 8BC3 MOV EAX,EBX
005850DC 8BCE MOV ECX,ESI
005850DE 60 PUSHAD
005850DF E8 35000000 CALL HxVodCli.00585119
005850E4 3985 BBD84100 CMP DWORD PTR SS:[EBP+41D8BB],EAX
005850EA 74 24 JE SHORT HxVodCli.00585110
005850EC 90 NOP
005850ED 90 NOP
005850EE 90 NOP
005850EF 90 NOP
005850F0 83BD 02244000 00 CMP DWORD PTR SS:[EBP+402402],0
005850F7 75 17 JNZ SHORT HxVodCli.00585110
005850F9 90 NOP
005850FA 90 NOP
005850FB 90 NOP
005850FC 90 NOP
005850FD 8BBD 97D84100 MOV EDI,DWORD PTR SS:[EBP+41D897]
00585103 03BD 1FFC4000 ADD EDI,DWORD PTR SS:[EBP+40FC1F]
00585109 B9 0A000000 MOV ECX,0A
0058510E F3:AB REP STOS DWORD PTR ES:[EDI]
00585110 61 POPAD
00585111 8D85 2D314100 LEA EAX,DWORD PTR SS:[EBP+41312D]
00585117 50 PUSH EAX
00585118 C3 RETN
00585119 8BF8 MOV EDI,EAX
其中5850df是call一个计算文件hash的值, 用返回的eax
跟保存的值比较.
首先把自己全读到内存中, CreateFileA, GloablAlloc, GetFileSize, ReadFile, 然后把正个文件大小都hash一次
int hash(char *buf, int size)
{
int ret = 0;
while(size-- > 0)
{
ret += *(buf++);
}
return ret;
}
当然后面还有个比较.
005850F0 83BD 02244000 00 CMP DWORD PTR SS:[EBP+402402],0
005850F7 75 17 JNZ SHORT HxVodCli.00585110
如果hash值不匹配, 那么就看看加壳的时候, 是否选择了
需要判断hash值.
不过这快代码是经过smc过的, 所以. 如果你要改动, 只能是
手动改文件, 当然, 不知道你为什么要改动, 因为还没脱壳.
接着, 在你的临时目录下有一个cid.dll, 是壳释放出来的
里面有一个GetMachineID的导出函数, 用来做机器码的
当然, 这个样本的参数没有用到机器码
还有一个, perplex.dll 的 zcf_decrypt, 用来解密, 不过没用上
我的文档中有一个key.dat .. 可是你给的样本也没有
这个key.dat, 我这里是出错了. 说联系qq 8742973...
顺便说一句, 这个壳没有检测硬件段点, 因此很容易中断.
好运.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
呵呵.谢谢.不过我不太懂的.还要谢谢高手的指教!
|