171115 杂项-可见字符组成的Shellcode
来源:互联网 发布:金山旗下软件 编辑:程序博客网 时间:2024/06/05 06:51
1625-5 王子昂 总结《2017年11月15日》 【连续第411天总结】
A. JarvisOJ-Basic-Shellcode
B.
题目如下:
下载下来打开以后发现是一段正常字符串:
PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIYIhkmKzyCDq4l4FQyBlrRWEahI1tLKT16Pnk1ftLnkPvwlnkW6fhNkan5pNkgF6XPOR8T5HsCivaN19okQSPlKRLvD6DNk3uelNkpTthRXuQ9znk2jEHLK1Ja0FaXkhcTtBink4tlKUQhnvQYotqo0ylnLMTO0SDEWZahOtMwqhG8kXteksLwTdh1e8aLKsja4uQ8kavLKdLrklK0ZeL7qjKLKUTLKuQM8k9bdvDeL1qiSnR5XVIXTOyjENikrphNnrnVnhlBrzHooKOYoyok93u7tOKCNyHzBBSnguLgTcbyxlNKOYoYoMYaUTHphRL2LupQQ0htsFRTn541x3E2Se5T26PyKK8QLTddJlIZFBvyoSeUTLIkrv0oKy8ORpMmlk7Gl6DBrm8SoyoioyoaxrOqh0XwP1xu1Qw1upBbHrmrED3T34qiKOxQLTdEZOyZCaxQmRxgPUp0hpnPn4srRe8BDSo2PT7axqOCWROpophSYpnSo04u83K72Peu70hBpCsqDpF4qHIMXpLQ429k98aEaJr1BF3Ca3bIozp01IPf0Yof5GxAA
之前做过一些Pwn的基础题,对Shellcode也算稍微接触过
Shellcode实际上就是汇编对应的机器码
但是由于机器码大部分都是不可见字符,所以无法直接显示出来
本题直接给了大段的乱码可见字符串,再结合机器码不可见,首先就想到了Base64编码–它的出现就是为了将不可见字符全部转为可见字符嘛
然而解b64发现不仅长度不符合,而且在最后添上等号以后解出来的值转汇编也并没有意义
于是去百度部分字符串,发现了这个
http://blog.csdn.net/instruder/article/details/6050048
Alpha2这个工程是专门将Shellcode编码成可见字符串的(甚至仅有字母和数字)
于是直接调用这个字符串:
int main(void){ int x; char a[] = "PYIIIIIIIIIIIIIIII7QZjAXP0A0AkAAQ2AB2BB0BBABXP8ABuJIYIhkmKzyCDq4l4FQyBlrRWEahI1tLKT16Pnk1ftLnkPvwlnkW6fhNkan5pNkgF6XPOR8T5HsCivaN19okQSPlKRLvD6DNk3uelNkpTthRXuQ9znk2jEHLK1Ja0FaXkhcTtBink4tlKUQhnvQYotqo0ylnLMTO0SDEWZahOtMwqhG8kXteksLwTdh1e8aLKsja4uQ8kavLKdLrklK0ZeL7qjKLKUTLKuQM8k9bdvDeL1qiSnR5XVIXTOyjENikrphNnrnVnhlBrzHooKOYoyok93u7tOKCNyHzBBSnguLgTcbyxlNKOYoYoMYaUTHphRL2LupQQ0htsFRTn541x3E2Se5T26PyKK8QLTddJlIZFBvyoSeUTLIkrv0oKy8ORpMmlk7Gl6DBrm8SoyoioyoaxrOqh0XwP1xu1Qw1upBbHrmrED3T34qiKOxQLTdEZOyZCaxQmRxgPUp0hpnPn4srRe8BDSo2PT7axqOCWROpophSYpnSo04u83K72Peu70hBpCsqDpF4qHIMXpLQ429k98aEaJr1BF3Ca3bIozp01IPf0Yof5GxAA"; asm("jmp %0;" : "=a"(x) : "0"(a));}
(Code::Block的编译器为gcc,内联汇编写法为AT&T记法,在VC编译器中(如VS)则应改为Intel记法)
之后好奇去研究了一下它的原理,本来以为是通过一些可见字符组成的ShellCode来间接形成不可见字符的,即等价代码
后来在https://bbs.pediy.com/thread-113177.htm这里看到了,实际上就是相当于bxx编码,将不可见字符转成可见字符嘛,不过厉害的是最后有直接为可见字符的解码器(似乎是Alpha3)
在OD中跟了一下,发现解码循环在这里
C. 明日计划
RE/MOBILE原理学习及练习
- 171115 杂项-可见字符组成的Shellcode
- 小心不可见字符组成的不可见字符串
- 注意不可见的字符!
- 杂项设备和字符设备的区别
- c# 不可见的字符,删除?
- 坑爹的不可见字符
- EXCEL中的神秘的不可见字符
- 查找不可见字符的正则表达式
- Unicode不可见字符的显示
- Javascript 不可见字符的输入
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- 字符杂项设备 misc_register
- [phone]找连续字符组成的substring的组成char
- ascii控制字符(不可见字符)和可打印字符(可见字符)------浪费15分钟的一次经历
- 自动创建节点的字符杂项设备 misc_register
- 自动创建节点的字符杂项设备 misc_register
- 3、 find_element
- 参考文献格式国家标准(GB-T 7714-2005)
- Hibernate映射关联(2)
- FFMPEG filter使用实例(实现视频缩放,裁剪,水印等)
- Django Form表单
- 171115 杂项-可见字符组成的Shellcode
- 类的加载过程
- D. Ralph And His Tour in Binary Country
- 类加载机制
- 3分钟教你成为JVM的尖子生
- Java性能权威指南.pdf 免费下载
- Redis实战.pdf 免费下载
- 【数据结构】循环队列的顺序实现
- Spring源码深度解析.pdf 免费下载