[软件问题] Shellcode编码问题

2630 0
jackydai 2010-9-30 23:50:27 | 显示全部楼层 |阅读模式
我准备写个shellcode的解码程序。可怎么写都实现了不。贴出来望大家帮帮忙。我采用的编码方法是与0x61 XOR,下面两种方法都试了,都不行。我在VC下调试的时候,好像
xor byte ptr DS:[ebx + ecx], 0x61 这句不能执行,好像是因为不能对代码段进行写操作。具体原因也不知道。望高手指教~~~十分感谢~~~
  1.    
  2. Void main()
  3. {
  4. __asm
  5. {
  6. lea eax,shell
  7. call eax
  8. }
  9. }
复制代码

这是我测试的主程序。 为了测试,我只实现这一句 mov eax,12345678h
编码例子一:
  1.          
  2. jmp decode_begin
  3. decode_start:
  4. pop ebx
  5. dec ebx
  6. xor ecx,ecx
  7. mov cl,0xff
  8. decode_loop:
  9. xor byte ptr DS:[ebx + ecx], 0x61
  10. loop decode_loop
  11. jmp decode_ok
  12. decode_begin:
  13. call decode_start
  14. decode_ok:
复制代码
code形式:
char shellcode[] =
\xEB\x0F\x5B\x4B\x33\xC9\xB1\xFF\x3E\x80\x34\x0B\x61\xE2\xF9\xEB\x05\xE8\xEC\xFF\xFF\xFF"
"\xD8\x19\x37\x55\x73" ;这个是经过编码的 mov eax,12345678h

编码例子二:
  1.      
  2. __asm
  3. {
  4. jmp decode_begin
  5. decode_start:
  6. mov esi,esp
  7. add esi,21h
  8. xor ecx,ecx
  9. mov ecx,0x12345601
  10. sub ecx,0x12345401
  11. decode_loop:
  12. xor byte ptr[esi],0x61
  13. inc esi
  14. loop decode_loop
  15. jmp decode_ok
  16. decode_begin:
  17. call decode_start
  18. decode_ok:
  19. }
复制代码
code形式:
char shellcode[] =
"\xEB\x1A\x8B\xF4\x83\xC6\x21\x33\xC9\xB9\x01\x55\x34\x12\x81\xE9\x01\x54\x34\x12\x80\x36\x61\x46\xE2\xFA\xEB\x05\xE8\xE1\xFF\xFF\xFF"
"\xD8\x19\x37\x55\x73"
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

jackydai

初入联盟

关注
  • 主题
  • 粉丝
  • 关注
这家伙很懒,什么都没留下!
24小时热帖

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行