- 博客(27)
- 资源 (2)
- 收藏
- 关注
原创 Win10 Hook 进程创建的研究
Win7甚至在它之前开始,想要hook进程创建已经不能简单的HookCreateProcessInternalW这一个函数了,因为Vista开始引入了UAC机制。如果一个进程想要通过UAC弹窗创建管理员进程,hook这个进程的CreateProcessInternalW已经不起作用,我在几年前的博文《Win7/VistaHook CreateProcess 的特别之处》(http://blog
2016-11-21 19:40:03
8424
6
原创 gdb 无符号情况下强制反汇编
最近开发的编程语言虚拟机使用了LLVM 的老版本JIT引擎,在GDB调试时JIT产生的代码无法通过disas命令反汇编,显示的是no function contains program counter使用这个命令x/i address,将会反汇编address的一条汇编指令使用x/10i address可以反汇编10条汇编指令,以此类推
2016-08-12 18:58:26
1173
原创 petuum在CentOS上安装
Pettum是一个新的分布式机器学习平台,现在写的一篇论文需要与其进行对比,故需安装之官网上给出了在Ubuntu上的安装方法,但是实验室里的环境是CentOS(版本还比较老),我找到了Petuum所有需要的apt包对应的yum包,另外官网安装Instruction中有一句是错的:git clone https://github.com/petuum/third_party.git thir
2016-08-02 14:08:38
611
原创 c/c++ 高位扩展的坑
高位扩展既是从低位数数据(比如int)转换到高位数数据(long long)时发生的。高位数数据的低位就是原来的低位数数据,那么高位呢?原来以为高位统统补0就好了,但是实际上不是这样的。如果低位数数据是有符号数,会按照低位数数据的最高位拓展,比如32位-1(0xFFFFFFFF)会扩展为64位0xFFFFFFFFFFFFFFFF。而如果低位数数据是无符号数,那么直接补0。这次写的程序中
2016-03-23 21:28:04
1217
原创 linux + busybox编译以及在qemu中运行
转自我自己的人人#mount -t sysfs none /sys#/sbin/mdev -s/sbin/umount -a/sbin/mount -a/sbin/mount -t ext3 remount rw /EOF chmod 777 ./etc/init.d/rcScd -mkfs.ext3 -m0 /dev/ram1mkdir /mn
2015-11-14 15:16:06
1784
原创 QEMU+busybox 网络和用户配置的几个注意点
busybox需要编译udhcpc, ifconfig(包括他的display选项)qemu启动参数添加-net nic,model=e1000 -net userbusybox的rom添加/home文件夹 和 /etc/network/interfaces文件rom中添加 /etc/passwd文件文件内容为一行语句:root:x:0:0:root:/root:/bi
2015-11-14 15:13:32
2087
原创 llvm GDB调试的几个坑
可以用DIBuilder类辅助建立调试信息,首先createcompileunit。然后要注意了,必须调用module->addModuleFlag(Module::Warning, "Debug Info Version",DEBUG_METADATA_VERSION); 否则把bitcode写入文件再读出来调试信息会被清除。如果要显示行号,可以在大多数llvm的指令里通过setdebugl
2015-10-08 10:59:08
3079
原创 瞎想
今天因为家里的一点小事情很不开心,萎了一晚上……可能最近事情比较多,压在心头。突然想起haha在梁静茹演唱会鱼儿的那段感人的视频时候泪崩停不下来,是不是她那时候也有什么心事呢?关于未来的打算真的好迷茫。迟迟没有下定决心出国,导致到现在连托福都没考。之前报名了7月的,由于自己的懒惰(外加学驾照等等,这也是无法忽视的客观原因),期末时期意外的忙碌,导致只能花500多换到9月。还被春哥吐槽:
2015-06-26 00:33:24
679
原创 终于从百度空间手动搬家过来了
哎,百度空间用了也好几年了,我发布了大概二十几篇文章。目测百度空间这个产品人气太低,竟然说关就关了= =这次搬运过来的是我之前写的所有技术博客。但是心情记录啥的就不搬来了,唉,就让他们烂在百度云里吧……最近几天真的好忙,驾校的考试和学校的考试重叠,真是搞笑,我脸也够黑了。误入Machine Learning这个大坑,好好复习,自求多福吧
2015-06-14 01:00:23
770
原创 llvm MCJIT 的若干陷阱
llvm MCJIT 的若干陷阱搬运自我的百度空间最近把llvm的老版本JIT转型到MCJIT,遇到一些问题首先是如何启动MCJIT,原来调用InitializeNativeTarget();的地方,添加InitializeNativeTargetAsmPrinter();InitializeNativeTarge
2015-06-14 00:51:41
3254
原创 C/C++中问号冒号表达式的陷阱
C/C++中问号冒号表达式的陷阱搬运自我的百度空间在做一个工程,遇到奇怪的bug,问题类似如下int a=1,b=2,c=3,d;d=a*b + c ? 1: 0;问d结果是多少? 设计时,我想结果应该为3 (1*2+1)实际d结果为1因为问号冒号表达式的优先级比较低(三元运算符优先级小于二元运算符
2015-06-14 00:50:23
15920
1
原创 构造Half(L)的NFA
构造Half(L)的NFA搬运自我的百度空间原创文章,转贴请贴出处偶尔来点纯理论问题。这是一道高级算法作业题,L是正则语言,语言B是L中所有字符串对半开的前一半,证明B也是正则的。目的明确,构造B的一台NFA,非确定型有限状态机。要用到“平行NFA”的概念。比如举例另外一个问题:如何判断一个字符串既是正则语言A又是正则语言B?可以
2015-06-14 00:47:14
1456
原创 llvm JIT强制保留frame pointer(栈帧)
llvm JIT强制保留frame pointer(栈帧)搬运自我的百度空间不优化时,在每个函数开头都会把ebp入栈,这样可以方便调试时栈回溯(Stack Trace)等。push ebp的这个动作称为创建栈桢但是llvm默认情况下,如果函数中没有alloca等栈操作,就会把栈桢动作优化掉(因为没有用到esp和ebp),这样调试时无法
2015-06-14 00:44:27
873
原创 VS2010编译LLVM(制作Lib文件)
VS2010编译LLVM(制作Lib文件)搬运自我的百度空间这里编译一个常用由常用LLVM的库组成的Lib文件,提高引用LLVM的程序的编译速度。相比codeblocks简单一些。仍然使用Cmake这个工具。如果没有把python加入环境变量,把python26.exepython26.dll python26.zip拷贝到(源文
2015-06-14 00:15:20
2208
原创 Cmake + CodeBlocks 编译llvm
Cmake + CodeBlocks 编译llvm搬运自我的百度空间1.安装cmake2.Cmake中,source code选择llvm的源文件文件夹,whereto build the binaries任意选择一个目录(一会生成的codeblocks工程文件会保存在这个文件夹)3.(如果环境变量没有设置python路径
2015-06-14 00:09:20
2490
原创 IsWow64Process函数理解的偏差
IsWow64Process函数理解的偏差搬运自我的百度空间IsWow64Process并不像网上很多文章说的那样,可以直接判断进程的位数。其实他的实际含义是某个进程是不是在wow64虚拟环境下。所以说各种可能的情况如下:64-bit process on 64-bit Windows : FALSE32-bit proc
2015-06-13 11:28:05
4101
原创 向低权限(低完整性?)进程注入的问题
向低权限(低完整性?)进程注入的问题搬运自我的百度空间一个让人崩溃的bug:Chrome程序在钩子下运行失败。正常情况下,在HOOK了CreateProcessInternalW后,我的钩子会在新进程插入自己的DLL进行连环钩子。调试了几天不见端倪。在windbg中看到卡住的原因是Chrome一个子进程在创建时Terminate了自己。使
2015-06-13 11:24:21
1390
原创 FishHook钩子库开发日志
FishHook钩子库开发日志搬运自我的百度空间FishHook是我开发了将近两年的Windows API Hook库,支持Win7/XP,支持x86和AMD64架构,如果开发成熟了以后也许会开源发布上来的。最近开发软件工程的大作业项目,用到FishHook,发现各种各样的BUG,这里简单记录下,聊表纪念14-4-15 发现IE运行在Fi
2015-06-13 11:20:31
2590
原创 DLL与Shellcode完全卸载自身
DLL与Shellcode完全卸载自身搬运自我的百度空间原创文章,转载请贴出处远程注入时有一个不痛不痒的问题,DLL与shellcode如何卸载自身,做到无痕清除?由于我的DLL自卸载用到了Shellcode,所以两个问题都需要解决。DLL卸载一般使用FreeLibrary,但是如果DLL自己Free自己,会遇到下一条指令(e
2015-06-13 11:15:18
2344
原创 VC运行时复制函数代码的注意事项
VC运行时复制函数代码的注意事项搬运自我的百度空间 参考了http://www.docin.com/p-472081682.html这篇论文。本文为原创,转载请注明出处。在反破解中可能需要把一段已经在内存中的函数代码拷贝出来,到另一个地方运行。在远程注入中也会遇到拷贝内存中的代码作为shellcode的情况。比如这段代码:long__
2015-06-13 11:07:50
994
原创 Box2d碰撞粘滞的问题(java)
Box2d碰撞粘滞的问题(java)搬运自我的百度百科Box2d中按照默认配置的话,如果一个球以较小的速度撞向墙,即使阻力=0,而且设置了完全弹性碰撞,球仍然会粘在墙上,沿着墙的方向移动.这是由于velocityThreshold这个值的设置造成的当碰撞速度小于velocityThreshold时,Box2d以非弹性碰撞处理这次碰
2015-06-13 11:04:34
813
原创 屏幕坐标向OpenGL坐标转换的问题
屏幕坐标向OpenGL坐标转换的问题搬运自我的百度空间 问题困扰我很久了,网上给出了这样一段代码:voidTranslateGL(intx,inty,GLdouble &posX,GLdouble &posY,GLdouble &posZ){ GLint viewport[4];
2015-06-13 11:01:37
2484
原创 定位未导出的函数地址(SHCreateProcess)
定位未导出的函数地址(SHCreateProcess)搬运自我的百度空间,文章基于windows7 64位 我们要Hook shell32.dll的SHCreateProcess这个函数,苦于他没有被导出,也无从知道地址。其实我们还是有办法的。windbg有功能叫做栈回朔技术,可以看到函数的调用者,函数的调用者的调用者,函数的调用
2015-06-13 01:15:48
3370
原创 Win7/Vista Hook CreateProcess 的特别之处
Win7/Vista Hook CreateProcess 的特别之处搬运自我的百度空间,写本文时主流系统为Win7,本文的方法没有在高版本的windows尝试Hook了CreateProcess后发现,每当非管理员进程创建管理员进程,这个Hook被绕过了。 Win7中如果要截取创建新进程,单单Hook 本进程kernel32中的
2015-06-13 01:11:38
4642
原创 __stdcall的故事版解释
__stdcall的故事版解释搬运自我的百度空间还是我发在csdn上的。。。。 一边墙(堆栈)是大家共用的,我把我的几个命令分别写在几张纸条上,一张黏在一张上贴在墙上,并呼叫服务员(函数)这时的纸条栈是-----我的命令a我的命令b-----由于我与服务员约定了命令的个数(比如2个命令/参数),和最
2015-06-13 01:07:27
478
原创 __stdcall与__cdecl的区别
搬运自我的百度空间csdn上回答了别人这个问题,码了好多字,还是放在这里不枉我这些时间吧 http://bbs.youkuaiyun.com/topics/390435293?page=1#post-394308806可以这样理解,不同call的方式相当于调用者和函数之间不同的协议,就像tcp与udp协议一样,对于发送端和服务器端的行为做了规定,函数call的"
2015-06-13 01:01:38
2446
原创 windows下llvm的Thread-local-Storage(TLS)的问题
在csdn的第一篇 目前llvm版本(3.6.0)的新JIT引擎MCJIT还不支持的TLS,而且开发组在3.6版本开始把旧jit移除了,所以需要TLS,选择3.4.3版本的旧JIT,用3.6的洗洗睡吧…… windows下,就算使用了3.4版本,MSVC依旧不支持llvm的TLS,所以用VS的洗洗睡吧…… 切换到GCC。注意llvm的
2015-04-18 21:00:57
851
手动回调函数
2011-10-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人