首页
社区
课程
招聘
[讨论]WinUpack0.399中奇怪的代码
发表于: 2007-3-26 19:52 6542

[讨论]WinUpack0.399中奇怪的代码

2007-3-26 19:52
6542
这些代码很奇特?不知道是干什么用的?只知道这代码中和区段“PS??纭庇泄亍!!?

L000:
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [ebp+5A], cl
  dec     ebx
  inc     ebp
  push    edx
  dec     esi
  inc     ebp
  dec     esp
  xor     esi, dword ptr [edx]
  inc     esp
  dec     esp
  dec     esp
  add     byte ptr [eax], al
  push    eax
  inc     ebp
  add     byte ptr [eax], al
  dec     esp
  add     dword ptr [ebx], eax
  add     byte ptr [esi], bh
  lods    dword ptr [esi]
  push    eax
  push    dword ptr [esi+34]
  jmp L099
  dec     eax
  add     dword ptr [edi], ecx
  add     dword ptr [ebx], ecx
  add     dword ptr [edi+ebp*2+61], ecx
  dec     esp
  imul    esp, dword ptr [edx+72], 41797261
  add     byte ptr [eax], al
  sbb     byte ptr [eax], dl
  add     byte ptr [eax], al
  adc     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], dl
  add     byte ptr [eax], al
  add     byte ptr [edx], al
  add     byte ptr [eax], al
  add     al, 0
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  cmp     al, byte ptr [eax]
  add     al, 0
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [edx], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  or      al, byte ptr [eax]
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  adc     al, 0
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
L099:
  push    dword ptr [esi+38]
  lods    dword ptr [esi]
  push    eax
  mov     edi, dword ptr [esi]
  mov     esi, 0
  push    27
  pop     ecx
  rep     movs dword ptr es:[edi], dword ptr [esi]
  push    dword ptr [esi+4]
  or      eax, FFFFFFFF
  mov     ebx, edi
  stos    dword ptr es:[edi]
  jmp L125
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  inc     edi
  je L2147324100
  jb L2147324100
  arpl    word ptr [ecx+64], ax
  jb L170
  jnb L179
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
  add     byte ptr [eax], al
L125:
  inc     eax
  stos    dword ptr es:[edi]
  inc     eax
  mov     cl, 4
  rep     stos dword ptr es:[edi]
  shl     eax, 0A
  mov     ch, 4
  rep     stos dword ptr es:[edi]
  mov     edi, dword ptr [esi+C]
  push    edi
  push    ecx
  jmp L137
L137:
  push    esi
  adc     dl, ah
  jecxz L2147324100
  add     al, 0D3
  loopdne L2147324100
  call    3358F57B
  rcl     byte ptr [ebp+40], 51
  shl     eax, cl
  mov     ebp, edx
  xchg    eax, ecx
  call    dword ptr [esi+4C]
  cdq
  pop     ecx
L150:
  shr     eax, 1
  adc     edx, edx
  loopd L150
  pop     ebp
  add     ebp, edx
  inc     ebp
  pop     ecx
  mov     dword ptr [ebx+8], ebp
  push    esi
  mov     esi, edi
  sub     esi, ebp
  rep     movs byte ptr es:[edi], byte ptr [esi]
  lods    byte ptr [esi]
  pop     esi
  mov     cl, 80
  stos    byte ptr es:[edi]
  cmp     edi, dword ptr [esi+34]
  jb L000
  pop     eax
  pop     edi
L170:
  pop     ecx
  jecxz L186
L172:
  mov     al, byte ptr [edi]
L173:
  inc     edi
  add     al, 18
  cmp     al, 2
  jnb L172
  mov     eax, dword ptr [edi]
  cmp     al, 0
L179:
  jnz L173
  mov     al, 0
  bswap   eax
  add     eax, dword ptr [esi+38]
  sub     eax, edi
  stos    dword ptr es:[edi]
  loopd L172
L186:
  pop     esi
  pop     ebp
L188:
  pop     ecx
  inc     esi
  lods    dword ptr [esi]
  test    eax, eax
  je L213
  push    ecx
  push    esi
  xchg    eax, edi
  call    ecx
  xchg    eax, ebx
L198:
  lods    byte ptr [esi]
  test    al, al
  jnz L198
  cmp     byte ptr [esi], al
  je L188
  mov     eax, esi
  jns L208
  inc     esi
  xor     eax, eax
  lods    word ptr [esi]
L208:           //这里就是区段“PS??纭保?坪跤肭etProcAddress有关。。
  push    eax
  push    ebx
  call    ebp
  stos    dword ptr es:[edi]
  jmp L198
L213:
  retn


[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
2007-3-27 08:22
0
雪    币: 209
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
add     byte ptr [ebp+5A], cl
  dec     ebx
  inc     ebp

转换成16进制是
  00 4D 5A 4B 45
再+上前面的00,估计是MZ文件头。
2007-3-29 12:07
0
雪    币: 148
活跃值: (140)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
最初由 dwing 发布


dwing 老大可是最有权威的..发表几句吧..~
2007-3-29 18:54
0
雪    币: 136
活跃值: (105)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
人家的压缩软件你们也研究阿 哈哈 看人家生气了吧 我还是快点跑吧
2007-3-30 00:54
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
不管懂不懂,先顶先
2007-3-30 08:17
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
  jb L170
  jnb L179

这个是怎么回事,往哪跳,
2007-3-30 09:28
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
8
最初由 fonge 发布

jb L170
jnb L179

这个是怎么回事,往哪跳,


L170:
  pop     ecx
  jecxz L186
L179:
  jnz L173
  mov     al, 0
  bswap   eax
  add     eax, dword ptr [esi+38]
  sub     eax, edi
  stos    dword ptr es:[edi]
  loopd L172
2007-3-30 13:40
0
雪    币: 7915
活跃值: (3628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
WinUpack 为了减少压缩后的体积,把压缩后的数据和解压代码和DOS头/PE头混在一起了,所以加载后的一部份是头部数据

L170:
  pop     ecx
  jecxz L186
L179:
  jnz L173
  mov     al, 0
  bswap   eax
  add     eax, dword ptr [esi+38]
  sub     eax, edi
  stos    dword ptr es:[edi]
  loopd L172

这里已经是解压完成了,进行 e8,e9处理~

add byte ptr [ebp+5A], cl
dec ebx
inc ebp

转换成16进制是
00 4D 5A 4B 45
再+上前面的00,估计是MZ文件头。


这里就是头部的数据,被加载到段中了
2007-3-31 13:54
0
雪    币: 7915
活跃值: (3628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10

WinUpack 为了减少压缩后的体积,把压缩后的数据和解压代码和DOS头/PE头混在一起了,所以加载后的一部份是头部数据

L170:
  pop     ecx
  jecxz L186
L179:
  jnz L173
  mov     al, 0
  bswap   eax
  add     eax, dword ptr [esi+38]
  sub     eax, edi
  stos    dword ptr es:[edi]
  loopd L172

这里已经是解压完成了,进行 e8,e9处理~

add byte ptr [ebp+5A], cl
dec ebx
inc ebp

转换成16进制是
00 4D 5A 4B 45
再+上前面的00,估计是MZ文件头。


这里就是头部的数据,被加载到段中了
2007-3-31 13:55
0
雪    币: 239
活跃值: (473)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
楼上的正解!
dwing优化的LZMA解压代码,估计只有他自已能看懂,太深了!
2007-4-1 08:55
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
12
他的跳转有点像乱伦!
2007-4-3 12:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
2007-4-3 13:09
0
游客
登录 | 注册 方可回帖
返回
//