[前几天都是算法啥的]来个和汇编有关的有关问题吧【欢迎赵老师莅临指导】
[前几天都是算法啥的]来个和汇编有关的问题吧【欢迎赵老师莅临指导】
void func(void* bytes, int len)
{
char a[8] = {};
memcpy(a, bytes, len);
}
一看就知道了,len如果过长,栈就被溢出了。没关系,这也是个题目。
主要是刚才发现赵老师也活跃在这里,于是就请教一下吧。【刚才有人问中文字符串匹配,赵老师发了一段strstr的汇编实现】
好吧,赵老师,和各位童鞋,哪位能写一段bytes of shellcode, 当函数返回时,弹出个MessageBox即可。
上面随便写点什么,比如说"Hello Teacher Zhao"什么的。
Go Go Go。。。赵老师,你汇编这么好,希望你第一个啊。~
------解决方案--------------------
我们就不凑热闹了,顶起!
------解决方案--------------------
友情围观~~
或许我应该去开个赌局,赌赵教主能否写出来~~
------解决方案--------------------
搬板凳,等赵老师。
------解决方案--------------------
赵老师是LZ尊贵的嘉宾啊,坐等。。。
------解决方案--------------------
以前某人的:
void func(void* bytes, int len)
{
char a[8] = {};
memcpy(a, bytes, len);
}
一看就知道了,len如果过长,栈就被溢出了。没关系,这也是个题目。
主要是刚才发现赵老师也活跃在这里,于是就请教一下吧。【刚才有人问中文字符串匹配,赵老师发了一段strstr的汇编实现】
好吧,赵老师,和各位童鞋,哪位能写一段bytes of shellcode, 当函数返回时,弹出个MessageBox即可。
上面随便写点什么,比如说"Hello Teacher Zhao"什么的。
Go Go Go。。。赵老师,你汇编这么好,希望你第一个啊。~
------解决方案--------------------
我们就不凑热闹了,顶起!
------解决方案--------------------
友情围观~~
或许我应该去开个赌局,赌赵教主能否写出来~~
------解决方案--------------------
搬板凳,等赵老师。
------解决方案--------------------
赵老师是LZ尊贵的嘉宾啊,坐等。。。
------解决方案--------------------
以前某人的:
- C/C++ code
char hello[] = { 0xE9, 0xC5, 0x00, 0x00, 0x00, 0x5A, 0x33, 0xC9, 0x64, 0x8B, 0x35, 0x30, 0x00, 0x00, 0x00, 0x8B, 0x76, 0x0C, 0x8B, 0x76, 0x1C, 0x8B, 0x46, 0x08, 0x8B, 0x7E, 0x20, 0x8B, 0x36, 0x38, 0x4F, 0x18, 0x75, 0xF3, 0x50, 0x52, 0x6A, 0x0C, 0xE8, 0x2C, 0x00, 0x00, 0x00, 0x5B, 0x83, 0xC3, 0x0D, 0x53, 0xFF, 0xD0, 0x83, 0xC3, 0x07, 0x53, 0x6A, 0x0B, 0xE8, 0x1A, 0x00, 0x00, 0x00, 0x5B, 0x83, 0xC3, 0x18, 0x6A, 0x00, 0x53, 0x53, 0x6A, 0x00, 0xFF, 0xD0, 0x58, 0x83, 0xEB, 0x0C, 0x53, 0x6A, 0x0B, 0xE8, 0x02, 0x00, 0x00, 0x00, 0xFF, 0xD0, 0x8B, 0xD8, 0x83, 0xC0, 0x3C, 0x8B, 0x00, 0x03, 0xC3, 0x81, 0x38, 0x50, 0x45, 0x00, 0x00, 0x75, 0x5B, 0x8B, 0x40, 0x78, 0x03, 0xC3, 0x50, 0x8B, 0xC8, 0x8B, 0x49, 0x14, 0x8B, 0x40, 0x20, 0x03, 0xC3, 0x55, 0x8B, 0xE8, 0x33, 0xD2, 0x51, 0x8B, 0x00, 0x03, 0xC3, 0x8B, 0xF8, 0x8B, 0x74, 0x24, 0x14, 0x8B, 0x4C, 0x24, 0x10, 0xFC, 0xF3, 0xA6, 0x75, 0x29, 0x83, 0xC4, 0x04, 0x8B, 0x44, 0x24, 0x04, 0x8B, 0x40, 0x24, 0x03, 0xC3, 0xD1, 0xE2, 0x03, 0xC2, 0x33, 0xD2, 0x66, 0x8B, 0x10, 0x8B, 0x44, 0x24, 0x04, 0x8B, 0x40, 0x1C, 0x03, 0xC3, 0xC1, 0xE2, 0x02, 0x03, 0xC2, 0x8B, 0x00, 0x03, 0xC3, 0xEB, 0x0B, 0x42, 0x83, 0xC5, 0x04, 0x8B, 0xC5, 0x59, 0xE2, 0xBA, 0x33, 0xC0, 0x5D, 0x59, 0xC2, 0x04, 0x00, 0xE8, 0x36, 0xFF, 0xFF, 0xFF, 0x4C, 0x6F, 0x61, 0x64, 0x4C, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x00, 0x75, 0x73, 0x65, 0x72, 0x33, 0x32, 0x00, 0x4D, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6F, 0x78, 0x41, 0x00, 0x45, 0x78, 0x69, 0x74, 0x50, 0x72, 0x6F, 0x63, 0x65, 0x73, 0x73, 0x00, 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64, 0x00}; int main(int argc, char* argv[]) { ((void(_stdcall*)())&hello[0])(); return 0; }
------解决方案--------------------
看热闹, 这个要指定编译器,操作系统版本的吧, 最好是提供编译好的binary...
等 linux / win7 x64 版本...
------解决方案--------------------
赵教主又遁了...
------解决方案--------------------
貌似赵教主又露面了,但是他依然假装没看到你的贴~~
------解决方案--------------------
来帮忙顶一下, 坐等赵老师.
------解决方案--------------------
唉,你们就别调侃赵大师了吧,偶现在只盼谁在网上放个答案,好让赵大师马上搜索出来,再来表演复制粘贴大法.........
不过,偶现在算是想通了,其实童鞋们老批判赵大师复制粘贴是不对的!虽然赵大师的复制粘贴似文非文、似屁非屁,看起来总是那么飘渺无垠,但相对于赵大师那些发自肺腑的“真知灼见”,却也算高深莫测了。所谓两权相害取其轻,赵大师的复制粘贴大法倒也成了好事了........