随笔-119  评论-12  文章-0 
  2017年8月18日
摘要: ctags+vim还是太累了,还是使用IDE好,尤其是c++模板。KDevelop就不错,符号智能推导以及cmake项目管理和配置,还是挺好用的。 Android端的ndk开发使用Android Studio,服务端开发就用KDevelop,谁让我用了Ice。 KDevelop不用编译,不用yum或阅读全文
posted @ 2017-08-18 21:07 bbqz007 阅读(2) 评论(0) 编辑
  2017年8月16日
摘要: 如果你使用gcc对一部分模块进行了GNUMake的编译,这些编译出动态库使用在Gradle编译框架下的项目。那么就有可能出现题目中的情况,使用不同的C++支持库的模块混合开发时,引发异常展开不正常。 当我们使用GNUMake编译的项目进行移植编译时,都会使用Ndk的toolchains下对应的gcc阅读全文
posted @ 2017-08-16 11:59 bbqz007 阅读(4) 评论(0) 编辑
  2017年6月21日
摘要: eventpoll是一种文件,它实现了一种机制利用一条rdllist队列来避免阻塞地进行poll。eventpoll归根到底还是在使用poll。而ET比LT高效,并不在于是否使用了poll,更不能说是因为LT使用了poll。通过阅读源代码就可以清楚看到对 ET 和 LT 处理的区别仅有一处,其余都相阅读全文
posted @ 2017-06-21 17:52 bbqz007 阅读(56) 评论(0) 编辑
  2017年6月9日
摘要: .rodata 只读字符串保护手段阅读全文
posted @ 2017-06-09 19:31 bbqz007 阅读(16) 评论(0) 编辑
摘要: python编译移植到测试机,并且移植ctypes模块。利用ctypes代替c程序,利用dalvik内部c++函数,在运行过程中手动命令操控dalvik虚拟机,并结合gdb进行调试。绕过zygote和ASM去启动进程。 由于我使用手动创建虚拟机,而不是通过zygote去启动虚拟机,zygote会通过阅读全文
posted @ 2017-06-09 17:09 bbqz007 阅读(21) 评论(0) 编辑
  2017年6月5日
摘要: 首先要确保你所使用的gdb和gdbserver是配对的,最好(或必须)是sdk内相同platform(api level)下的gdb和gdbserver。否则你使用的gdb可能与运行测试机上的gdbserver,因为协议不兼容,而不能正常调试。 gdb 连接后提示,"Argument to arit阅读全文
posted @ 2017-06-05 20:41 bbqz007 阅读(22) 评论(0) 编辑
摘要: 使用 libdvm.so 内部函数dvm* 加载 dex阅读全文
posted @ 2017-06-05 19:22 bbqz007 阅读(108) 评论(0) 编辑
  2017年5月26日
摘要: 一次逆向加固apk的总结。阅读全文
posted @ 2017-05-26 19:51 bbqz007 阅读(20) 评论(0) 编辑
  2017年5月23日
摘要: 最近在x86的内核上,使用/proc/kcore调试分析内核信息时,发现这个arch下编译的/proc/kcore不能正常工作。调试其文件系统的模块后,发现竟与内存管理模型配置有关,最后使其正常工作。阅读全文
posted @ 2017-05-23 20:07 bbqz007 阅读(94) 评论(0) 编辑
  2017年5月11日
摘要: 抢断调度,是调度机制对实时系统需要的支持,是一种快速响应的重调度机制。既然与重调度有关,那么就先回顾一下调度和重调度。 调度分两种情况,1. 一种是自愿调度,由代码主动调用schedule来让度cpu,例如sleep,mutex,sema等阻塞等待。另外,当一个进程(或线程)走到尽头(do_exit阅读全文
posted @ 2017-05-11 19:54 bbqz007 阅读(13) 评论(0) 编辑