随笔分类 -  基础学习

Designated Initializers
摘要:在看Android的权限管理代码时候,看到一种初始化结构体的用法:struct su_request { unsigned uid; char *command;};static struct su_request su_to = { .uid = AID_ROOT, .command = DEFAULT_COMMAND,};这个前面的“.”很重要,不过我记得以前用VC的时候,好像没有这种情况。网上一查才知道,原来这个叫:Designated Initializers,也翻译为:指派初始化相关网站:http://gcc.gnu.org/onlinedocs/gcc/De... 阅读全文

posted @ 2013-10-09 12:12 堕落华为人 阅读(246) 评论(0) 推荐(0)

Java注入学习总结
摘要:最近看到Android手机上金山毒霸实现了一个过滤广告的功能(也不确认是不是最早的),在注入过程中还包括JAR和dex注入,这让我产生了兴趣。有关金山的注入在看雪论坛上有简要的分析:http://bbs.pediy.com/showthread.php?t=166151这里主要是被JAR注入吸引到了,不知道JAVA原来也能玩注入。不过替换的本质我却产生了个误解:难道JAVA的方法能够被动态替换?当然后来问了达人,得到一个结论,C#和JAVA初始化的过程不是一样的,方法的动态替换。据说C#可以,但是JAVA不行。首先在网上搜索了一些有关JAVA注入的资料,有2套资料比较有帮助:1、xantoro 阅读全文

posted @ 2013-10-03 03:15 堕落华为人 阅读(3249) 评论(0) 推荐(0)

【面试题】递归法求字符串长度
摘要:背景:曾经面试一个游戏公司面试官问书写代码如下:unsigned int getStrLength(char* str){ if( str == NULL || str == (char*)-1 ) return -1; if(*str == '\0') return 0; else return getStrLength(str+1)+1;}在网上简单查一下,好像一般大家也不怎么判断传入指针为空或者全F的情况,我想加一个作为判断或许好一点吧。 阅读全文

posted @ 2013-08-29 13:35 堕落华为人 阅读(279) 评论(0) 推荐(0)

abs函数的实现
摘要:abs函数即取一个整形数的绝对值,今天在IDA查看cygwin的实现时候发现其实现过程,这里总结三种情况(感觉这类型东西也很适合用于笔试或面试):(1)带if分支的利用补码特性:正数的补码和原码相同;负数的补码是:补码=~(其正数的)原码+1。因此如果是负数求绝对值可以:(绝对值)原码=~(补码-1)int _abs(signed int i){ if (i0?p:-p;}(3)不带if分支(判断分支)的位运算:我是从cygwin中逆向得到的代码int __cdecl _abs(signed int i){ return ((i >> 31) ^ i) - (i >> 阅读全文

posted @ 2013-08-26 19:11 堕落华为人 阅读(2338) 评论(2) 推荐(1)

导航