首页
社区
课程
招聘
[求助]写了个小小的虚拟机, 希望前辈们逆一下, 给点意见, 谢谢。
发表于: 2014-10-1 18:24 8307

[求助]写了个小小的虚拟机, 希望前辈们逆一下, 给点意见, 谢谢。

2014-10-1 18:24
8307

我现在把一段代码加密了, 现在主要是想测试一下一个函数的调用入口保护强度.
具体说明放在附件里面.
现在发上来, 希望前辈们能给点意见.
现在的虚拟机完全没有加花, 原原本本的源代码, 但是是一个未完成品, 还有很多指令没有支持.
谢谢前辈们.
第一次发帖. 打扰了.

修改了附件中的说明.


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 3
支持
分享
最新回复 (18)
雪    币: 1155
活跃值: (4247)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
2
没找到调用的地方
2014-10-1 19:11
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
3
谢谢这位前辈的测试。
2014-10-1 20:14
0
雪    币: 59
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
前来围观,大牛大大
2014-10-1 21:08
0
雪    币: 18
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我找到调用的地方了,你看下是不是呢  怎么发图片呢
2014-10-2 00:03
0
雪    币: 18
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个是调用位置和调用函数的图片,你看下是不是呢,多多探讨,我也在研究虚拟机这块
上传的附件:
2014-10-2 00:05
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
7
谢谢前辈的测试, 位置不对.
2014-10-2 00:08
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
8
这个已经没有在虚拟机里面了。
2014-10-2 00:17
0
雪    币: 18
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个call就是你那个function啊,你具体要找什么内容啊,详细说明下
2014-10-2 00:26
0
雪    币: 371
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
10
看看..
2014-10-2 07:21
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
11
下载的文件中有个说明, 需要找的是 具体Function的调用位置[那个小过程], 根据你发的这个图, 是在main函数中,不是虚拟机。
谢谢前辈的测试。
2014-10-2 08:34
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不是很明白
是指这个吗?
0043D86A   .  FF15 206D4C00   call    [4C6D20]                         ;  SysVMP_1.SysVMProtectFunction

还是这个?
1000880A    C3                ret
2014-10-2 09:01
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13
这位前辈应该是找到了,前面的call不是。 后面的ret应该是了,可否贴附近几行代码?前辈能说一下是如何找的吗?是通过Function函数的返回地址下后找线索,还是在第二次Function跟着过去的?
2014-10-2 10:41
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
100087E6  ^\EB CD           jmp     short 100087B5
100087E8    89A5 58FFFFFF   mov     dword ptr [ebp-A8], esp
100087EE  ^ EB D5           jmp     short 100087C5
100087F0    60              pushad
100087F1  ^ EB A6           jmp     short 10008799
100087F3    8BB7 A0000000   mov     esi, dword ptr [edi+A0]
100087F9  ^ EB AA           jmp     short 100087A5
100087FB    57              push    edi
100087FC  ^ EB 93           jmp     short 10008791
100087FE    897C24 04       mov     dword ptr [esp+4], edi                  ; 0043986A function
10008802  ^ EB 9A           jmp     short 1000879E
10008804    897C24 08       mov     dword ptr [esp+8], edi
10008808  ^ EB B3           jmp     short 100087BD
1000880A    C3              retn                                            ; goto 0043986A = function
1000880B    8B8D 44FAFFFF   mov     ecx, dword ptr [ebp-5BC]
10008811    83C1 01         add     ecx, 1
10008814    69D1 4C010000   imul    edx, ecx, 14C
1000881A    8B45 08         mov     eax, dword ptr [ebp+8]
1000881D    8D7410 04       lea     esi, dword ptr [eax+edx+4]
10008821    B9 53000000     mov     ecx, 53
10008826    8DBD B0FDFFFF   lea     edi, dword ptr [ebp-250]
1000882C    F3:A5           rep     movs dword ptr es:[edi], dword ptr [esi>
2014-10-2 18:25
0
雪    币: 51
活跃值: (30)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
15
[QUOTE=onelife;1321080]100087E6  ^\EB CD           jmp     short 100087B5
100087E8    89A5 58FFFFFF   mov     dword ptr [ebp-A8], esp
100087EE  ^ EB D5           jmp     s...[/QUOTE]
这位前辈,这里对了,能说说你是怎么找过来的吗?是在第一次调用完,然后一步一步跟着走过来的吗?请前辈指点一二。
2014-10-2 18:32
0
雪    币: 183
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
这个其实比较明显了,直接去到函数的地方看调用栈,对参数下内存写入断点,就能找到地方了.
2014-10-2 18:38
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不错,先mark等下再来看
2014-10-3 00:31
0
雪    币: 45
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
用的是16楼onelife大牛讲的方法
2014-10-3 08:37
0
雪    币: 192
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
发到这里来了..
2014-10-3 09:12
0
游客
登录 | 注册 方可回帖
返回
//