存档

文章标签 ‘代码重定位’

ShellCode常用的GetPC方法

2012年11月24日 1 条评论

GetPC,也即Get Program Counter,取得程序计数器的值,在x86下就是GetEIP了,其作用是在进程的内存空间中得到当前的EIP的值,通常用于需要对代码自身进行操作的场合下,比如自解码和自修改代码(更一般的来说常见于病毒、溢出攻击代码等,也称之为代码重定位技术)。因为在x86下无法直接操作EIP寄存器,所以需要一些特殊的方法来获取EIP寄存器的值。
1. CALL GetPC
最简单的GetPC方法是使用call指令,之前的文章有提到过(http://www.programl[......]

继续阅读

Win32 bind port shellcode(4444 tcp) 399 bytes

2012年10月27日 5 条评论

Win32 bind port shellcode(4444 tcp) 399 bytes,验证可用,执行后通过telnet到目标机器4444端口即可。以下代码请谨慎执行,测试完注意关闭端口!!!

另外,对于一些需要网络发送数据的场景,可能要求数据中不得函数NULL字符(0×00),下面的代码是NULL Free的,其中的代码重定位(GetPC)使用了浮点指令集:

00C67000 D9 EE fldz
00C67002 D9 74 24 F4 fnstenv [esp-0Ch]
00C67006 5B pop ebx
测试漏洞利用的时候,总是不成功,调试发现fldz/fnstenv指令会破坏栈顶数据,所以建议在ShellCode前填充适当的NOP指令。[......]

杂记:Sublime _ UltraCompare _ 代码重定位

2012年8月2日 没有评论

好久不写博客,也没有什么可写的,随便写写杂记吧。

文件的复制、移动除了CopyFile / MoveFile以及其Ex函数,还可以用SHFileOperation和IFileOperation(Vista后支持),具体可以参考:
http://blog.csdn.net/tht2009/article/details/6753706
http://blog.csdn.net/tht2009/article/details/6787271
代码重定位:机器码E8 00000000,也就是call $+5,shellcode及病毒代码中比较常见,
call @F
@@:
pop eax
sub eax, offset @B
详细可参考:http://blog.csdn.net/magictong/article/details/7610482

UltraCompare,一个不错的文件差异对比工具,支持二进制对比,感觉还不错。还有UltraEdit的列编辑功能很赞。
Sublime,一个不错的代码编辑器,可以考虑替换Notepad++了,装一个ConvertToUTF8插件可解决中文乱码问题。[......]