首页
社区
课程
招聘
[请勿新开主题!甲壳相关主题合并帖]
发表于: 2010-3-19 16:20 284745

[请勿新开主题!甲壳相关主题合并帖]

2010-3-19 16:20
284745
收藏
免费 0
支持
分享
最新回复 (781)
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
151
那你还原吧 也就几句汇编代码
2010-5-11 22:50
0
雪    币: 4902
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
152
呵呵
算了
夏虫不可与冰语
LZ继续自得吧
2010-5-11 22:52
0
雪    币: 419
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
153
他没有让你爆破
2010-5-11 22:53
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
154
如果S牛吧模拟CPU分析透了 你还是来看一下吧

毕竟你也是做程序的 这是一种新技术 不然你永远也不知道什么是模拟cpu了
2010-5-11 22:55
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
155
我想这个帖我大哥不会回复了
2010-5-11 22:58
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
156
我没有爆破啊,我只是不知道楼主所说的还原是什么,当然我是完全不懂的,
当然如果随意让它弹 MssageBoxA  一百几十次那倒应该。估计。勉强可以的。

最后回复此贴,并声明 完全投降,完全搞不定
2010-5-11 23:00
0
雪    币: 295
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
157
小Z 介绍你大哥给我认识呗~
2010-5-11 23:02
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
158
"yingyue"的分析完全还属于门外汉  还根本不懂是么叫模拟cpu 建议先去网上学习
2010-5-11 23:53
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
159
你说得太对了,请你推荐一些资料吧,真的完全不懂
2010-5-11 23:56
0
雪    币: 35
活跃值: (11)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
160
你或许还停留在vmp 去看看intel的三个说明文档吧
2010-5-12 00:25
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
161
不用了,由于你的 “模拟CPU” 强悍得远胜 VMP ,而恰好 VMP 我同样是处于完全不懂的阶段,国产保护系统就靠你了。

这次真的不会再跟帖了,太深奥了。前面的当看热闹。。。。只是玩笑 O(∩_∩)O哈哈~
2010-5-12 00:29
0
雪    币: 75
活跃值: (618)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
162
没玩过破解没玩过vmp,小小的crakeme也没玩过
只是对楼主说的模拟cpu很神秘,因为楼主每次开坛我都看不懂00!
花了1个小时尝试用od跟了跟。
楼主是不是 先把源程序加了个壳。。然后把pe分成几个部分保存在GUI-宿主.exe里。运行的时候,分配一个大块虚拟内存256M,这个开始用来容纳源程序头。再分配若干个区域用于提取其他部分,然后逐步把其他部分加到这个区域,再运行。感觉源程序被楼主加了个壳。。还好像有些垃圾指令啥滴。
总之,一头雾水,不懂不懂。。跟楼主不是一个层次级别的。从头至尾楼主的帖子偶都看不懂,本人太菜了00!
佩服佩服!!
2010-5-12 01:25
0
雪    币: 7115
活跃值: (639)
能力值: (RANK:1290 )
在线值:
发帖
回帖
粉丝
163
调了一下。 终于知道什么是LZ称做的CPU模拟了。 的确不是VMP。 把要保护的指令偷出来,然后每次执行时写入到一个内存里, 跳入到那个内存执行,执行完毕后 跳回到一个貌似切栈操作的地方,然后周而复始的继续。  OD加载F9 弹出MESSAGEBOX 。 下断MessageBoxa.  点是或者否 都成  进入 一个函数。懒的分析了 貌似是切栈之类的。 用了N多的E8 2 FF 25 这样的花指令直接NOP修复即可 最后跳转到一个每次执行指令写指令的地方,里面的内容大约是
00200000     B8 01000000               MOV EAX,1
00200005     90                        NOP
00200006     90                        NOP
00200007     90                        NOP
00200008     90                        NOP
00200009   - FF25 16002000             JMP DWORD PTR DS:[200016]
0020000F     FF25 00000000             JMP DWORD PTR DS:[0]
00200015     00942A A8010000           ADD BYTE PTR DS:[EDX+EBP+1A8],DL
第1行就是保护的代码。。。 在最后跳转到200016存储的地址。 这个地址保存的也是应该是切栈操作函数。切回的操作
弹出MessageBox前
mov eax, 1
cmp eax, 1
push 4
push 403000
push 403000
push 0

点1次是
ret
push 4
push 403000
push 403000
push 0

点2次是
ret
push 4

点3次是
ret
push 0

是这样吗????
2010-5-12 01:38
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
164
内存——》模拟CPU?

不是很懂.!

LS 的兄弟很猛!
2010-5-12 04:37
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
165
w哥
把我ID编辑掉吧. 好像春天到了要找我喇舌
2010-5-12 07:46
0
雪    币: 295
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
166
走,请你换机油去~
2010-5-12 07:51
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
167
那就送给你好了
00401000  B8 01000000    mov     eax, 1
00401005  83F8 01        cmp     eax, 1
00401008  75 25          jnz     short 0040102F
0040100A  E8 0C000000    call    0040101B
0040100F  E8 07000000    call    0040101B
00401014  E8 02000000    call    0040101B
00401019  EB 14          jmp     short 0040102F
0040101B  6A 04          push    4
0040101D  68 00304000    push    00403000
00401022  68 00304000    push    00403000
00401027  6A 00          push    0
00401029  E8 08000000    call    <jmp.&user32.MessageBoxA>
0040102E  C3             retn   
0040102F  6A 00          push    0
00401031  E8 06000000    call    <jmp.&kernel32.ExitProcess>
00401036  FF25 08204000  jmp     [<&user32.MessageBoxA>]
0040103C  FF25 00204000  jmp     [<&kernel32.ExitProcess>]

2010-5-12 08:42
0
雪    币: 1402
活跃值: (341)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
168
我看不太懂。难道被楼上的还原了?????
2010-5-12 08:52
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
169
可怜的楼主,呵呵
2010-5-12 09:12
0
雪    币: 291
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
170
有时候就感觉LZ只要出现,就是一场大风波,一场超级大杯具....默哀中...
等待优秀加壳架构师,等待国内“模拟CPU”鼻祖...
2010-5-12 09:36
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
171
太让我失望了
2010-5-12 10:04
0
雪    币: 81
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
172
说句实话,我挺菜的,可也没楼主这么高调.菜地高调
2010-5-12 10:34
0
雪    币: 129
活跃值: (53)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
173
一早来 发现S牛已经出手了
只是处理了几条指令 其他的诸如MOV/CMP/PUSH/RETN都没有模拟

003F0004 00 00 05 00 00 00 00 00 B8 01 00 00 00 00 00 00 .......?......
003F0014 00 00 00 00 00 00 03 00 00 00 00 00 83 F8 01 00 ...........凐.
003F0024 00 00 00 00 00 00 00 00 03 00 02 00 00 00 00 00 ..............
003F0034 03 25 00 00 00 00 00 00 00 00 00 00 01 00 05 00 %............
003F0044 0C 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 ...............
003F0054 01 00 05 00 07 00 00 00 FF 00 00 00 00 00 00 00 ............
003F0064 00 00 00 00 01 00 05 00 02 00 00 00 FF 00 00 00 ............
003F0074 00 00 00 00 00 00 00 00 02 00 02 00 14 00 00 00 .............
003F0084 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ..............
003F0094 00 00 00 00 6A 04 00 00 00 00 00 00 00 00 00 00 ....j..........
003F00A4 00 00 05 00 00 00 00 00 68 00 30 40 00 00 00 00 .......h.0@....
003F00B4 00 00 00 00 00 00 05 00 00 00 00 00 68 00 30 40 ...........h.0@
003F00C4 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 ...............
003F00D4 6A 00 00 00 00 00 00 00 00 00 00 00 01 00 05 00 j.............
003F00E4 08 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 ..............
003F00F4 00 00 01 00 00 00 00 00 C3 00 00 00 00 00 00 00 .......?......
003F0104 00 00 00 00 00 00 02 00 00 00 00 00 6A 00 00 00 ...........j...
003F0114 00 00 00 00 00 00 00 00 01 00 05 00 06 00 00 00 .............
003F0124 FF 00 00 00 00 00 00 00 00 00 00 00 02 00 06 01 ............
003F0134 08 20 40 00 FF 00 00 00 00 00 00 00 00 00 00 00 @............
003F0144 02 00 06 01 00 20 40 00 FF 00 00 00 00 00 00 00 .. @........
003F0154 00 00 00 00 ....


从003F0004开始 每14字节代表一条指令
以01,02,03,04开头的为模拟指令,本例中只出现了3中模拟.另外以00开头的为真实指令.
模拟:
01为CALL,003F0040为例,第5字节的0C为地址长度.即CALL EIP+5+0C
02为JMP ,以003F007C处为例 第3字节的02代表指令长度,即2字节的JMP,也就是EB,第5字节的14为地址长度.即JMP EIP+5+14
02还有一种是第4字节为1.则为JMP [XX].
03为JCC.以003F002C 为例 第3字节的02代表指令长度,即2字节的JCC,第9字节的03代表JCC类型,即JNZ(?),第A字节的25为地址长度,即JNZ EIP+5+25
04此例没出现.如下
003E2D29 /75 05 jnz short 003E2D30
003E2D2B ^|E9 4EFCFFFF jmp 003E297E
003E2D30 \0FBE05 70623E00 movsx eax,byte ptr ds:[3E6270]
003E2D37 0FBE0D 0E603E00 movsx ecx,byte ptr ds:[3E600E]
003E2D3E 3BC1 cmp eax,ecx
003E2D40 75 05 jnz short 003E2D47
003E2D42 ^ E9 1FF7FFFF jmp 003E2466
003E2D47 0FBE05 70623E00 movsx eax,byte ptr ds:[3E6270]
003E2D4E 0FBE0D 0F603E00 movsx ecx,byte ptr ds:[3E600F]
003E2D55 3BC1 cmp eax,ecx
003E2D57 75 05 jnz short 003E2D5E
003E2D59 ^ E9 41FAFFFF jmp 003E279F
003E2D5E 0FBE05 70623E00 movsx eax,byte ptr ds:[3E6270]
003E2D65 0FBE0D 12603E00 movsx ecx,byte ptr ds:[3E6012]
003E2D6C 3BC1 cmp eax,ecx
003E2D6E 75 05 jnz short 003E2D75
003E2D70 ^ E9 FDFDFFFF jmp 003E2B72
003E2D75 0FBE05 70623E00 movsx eax,byte ptr ds:[3E6270]
003E2D7C 0FBE0D 13603E00 movsx ecx,byte ptr ds:[3E6013]
003E2D83 3BC1 cmp eax,ecx
003E2D85 75 05 jnz short 003E2D8C
003E2D87 ^ E9 6EFEFFFF jmp 003E2BFA

真实:
00类为真实指令.以003F0004为例.第3字节的05代表指令长度,即从第9字节开始的长度为5的一条汇编指令.此处即为MOV EAX,1,即B801000000
他只是把这条指令搬到申请的内存空间执行罢了.
本来只是看看不说话的 不过LZ频繁调戏我 我只能调戏回去了
按照以上分析 最后结果和S牛一样.
2010-5-12 10:46
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
174
幻觉,一切都是幻觉,楼主都说了不能还原了,怎么可能被还原呢?
2010-5-12 10:57
0
雪    币: 279
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
175
2010-05-11, 20:37:46  到 2010-05-12, 08:42:44  好长久,
TMD,ZP,TTP,VMP等强壳完全做不到
2010-5-12 10:59
0
游客
登录 | 注册 方可回帖
返回
//