上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
摘要: JAVA的安全模型不同于传统的安全方法,传统的安全方法中,大多数操作系统允许应用程序充分访问系统资源,在操作系统不提供安全保护的机器里,运行环境不能被信任。为了弥补这个缺陷,安全策略经常要求在应用程序执行之前对应用程序建立信任,例如要求程序员在执行从网上获得的应用程序前,先检查病毒和源代码中不安全的代码。这种方法有2个问题:(1)确定程序是否安全的检查很复杂很浪费时间,很少有程序员愿意花时间读程序的源代码,然后再将它编译成本地机器码以保证程序是安全的。(2)病毒检查要不断维护以保证有效性。JAVA的安全模型是不同的,为了防止用户系统受到通过网络下载的不安全程序的破坏,JAVA提供了1个自定义的 阅读全文
posted @ 2013-10-07 16:43 问笑 阅读(727) 评论(0) 推荐(0)
摘要: 在经典的栈溢出模型中,通过覆盖函数的返回地址来达到控制程序执行流程(EIP寄存器),通常将返回地址覆盖为0x7FFA4512,这个地址是一条JMP ESP指令,在函数返回时就会跳转到这个地址去执行,也就是执行JMP ESP,而此时ESP刚好指向我们在栈上布置的Shellcode,于是就执行了Shellcode。之所以栈上的数据能被执行,是因为早期操作系统没有区分数据和代码,EIP指向哪里就去哪里执行。当引入DEP(Data Execution Prevention 数据执行保护)之后,堆、栈上的内存页属性默认不再具有可执行属性,此时如果想直接在栈上执行数据,就会发生错误:常用的绕过DEP的技术 阅读全文
posted @ 2013-10-06 19:51 问笑 阅读(1239) 评论(0) 推荐(0)
摘要: 最近在考虑C/S结构程序的软件自动升级的实现方式,比如QQ、飞信等都自动升级的功能。自动升级模块虽然还没有编码完成,但是思路还是比较清晰的。自动升级过程中,升级文件的JAR包是专门加载到程序中去的,因此,自定义一个ClassLoader,用于加载用户JAR包,就非常的重要了。应用程序ClassLoader只提供了一个public Class loadClass(String name) throws ClassNotFoundException 方法,没有提供加载JAR的方法。URLClassLoader提供了一个protected void addURL(URL url)的方法,倒是可以加载 阅读全文
posted @ 2013-10-06 19:17 问笑 阅读(2571) 评论(0) 推荐(0)
摘要: ClassLoader基本概念JVM在运行时会产生三个ClassLoader,Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader.AppClassLoader的Parent是ExtClassLoader,而ExtClassLoader的Parent为Bootstrap ClassLoader。Bootstrap是用C++编写的,我们在Java中看不到它,是null。它用来加载核心类库,在JVM源代码中这样写道:static const char classpathFormat[] ="%/lib/rt.jar:&quo 阅读全文
posted @ 2013-10-06 19:00 问笑 阅读(573) 评论(0) 推荐(0)
摘要: NULL指针一般都是应用于有效性检测的,其实这里面有一个约定俗成的规则,就是说无效指针并不一定是 NULL,只是为了简单起见,规则约定只要指针无效了就将之设置为NULL,结果就是NULL这个指针被用来检测指针有效性,于是它就不能用作其它了,而实际上NULL就是0,代表了数值编号为0的一个内存地址,抛开那个约定,它和别的addr没有任何区别,简单的说,完全可以选择一个其它的地址作为指针有效性检测,比如0x1234等等,不选其它地址的原因就是第一,NULL比较好记忆,第二,由于NULL就是0,因此很容易进行布尔判断。请看下面的程序:?12345678910111213141516171819202 阅读全文
posted @ 2013-10-05 10:49 问笑 阅读(473) 评论(0) 推荐(0)
摘要: JavaScript 是面向对象的。但是不少人对这一点理解得并不全面。在 JavaScript 中,对象分为两种。一种可以称为“普通对象”,就是我们所普遍理解的那些:数字、日期、用户自定义的对象(如:{})等等。还有一种,称为“方法对象”,就是我们通常定义的 function。你可能觉得奇怪:方法就是方法,怎么成了对象了?但是在 JavaScript 中,方法的确是被当成对象来处理的。下面是一个简单的例子:Js代码 function func(){alert( 'Hello!' );} alert(func.toString()); function func() {alert 阅读全文
posted @ 2013-09-30 17:54 问笑 阅读(209) 评论(0) 推荐(0)
摘要: 2013.02.16最近看Dom Xss检测相关的Paper,涉及到Hook Javascript函数,网上翻了一下,貌似没有什么通用的函数钩子脚本,自己用就自己写一个吧。最后有代码地址,前面写下mind storm的过程。最经典且简单的Javascript函数钩子的写法应该是下面这样了: var _alert = alert;window.alert =function(s){ console.log("Hooked!"); _alert(s);}不过这种Hook方式跟闹着玩儿似的,用到实际生产上通用性不好,效率也不高。国内比较早看到的介绍Javascript函数劫... 阅读全文
posted @ 2013-09-30 17:00 问笑 阅读(1953) 评论(0) 推荐(0)
摘要: 解析雅虎与百度流氓原理- 为什么“浏览器劫持”能够如此猖狂呢?放眼众多论坛的求助贴,我们不时可以看到诸如“我的IE被主页被改了,我用杀毒工具扫了一遍都没发现病毒,我把主页改回自己的地址,可是一重启它又回来了!”、“我的系统一开机就跳出一个广告,我明明用了最新版的杀毒软件的啊!”等这类关于IE异常问题的求助,80%的提问者都表示纳闷,他们已经安装了杀毒软件,可是IE仍然被“黑”了,这又是为什么? 其实这些都是典型的“浏览器劫持”现象,但是受害者不是已经安装了杀毒软件吗?为什么浏览器依然躲不过这只黑手?许多用户对这个领域都存在一种误区心理:浏览器劫持?我有最新的杀毒软件,我不怕! 于是,当他们.. 阅读全文
posted @ 2013-09-30 07:54 问笑 阅读(487) 评论(0) 推荐(0)
摘要: 类名前只有两种修饰符:不写(即default,但不能把default写上去)或public。默认不写则此类只能被同一包下的类调用以生成相应的实例。但若是public,则可以被不同包下的类调用以生成其实例。即类名前的pulic修饰符的作用只是把此类的作用范围伸展到不同包下。一个文档下可以写多个类,但这些类必须在同一个包下,并且最多只能有一个类被修饰为public(或不加修饰符)。相当于是说一个文档下只能露一个类出来给其它包使用。三、main()函数依旧如同普通的函数,你可以在一个文档中的每个类下都写一个main()函数,等你使用javac命令将此文档编译之后,此文档下的每个类都会被编译成单独的文 阅读全文
posted @ 2013-09-25 17:40 问笑 阅读(173) 评论(0) 推荐(0)
摘要: Java中的一个包就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。可以使用import关键字来导入一个包。例如使用import java.util.*就可以导入名称空间java.util包里面的所有类。所谓导入这个包里面的所有类,就是在import声明这个包名以后,在接下来的程序中可以直接使用该包中的类。例如:[java] view plaincopyprint?importjava.util.*publicclassSingleImport{publicstaticvoidmain(Strin[]args){ArrayListlist=nwe 阅读全文
posted @ 2013-09-25 15:50 问笑 阅读(622) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页