上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 62 下一页
摘要: 00D94F70 55 push ebp00D94F71 8BEC mov ebp,esp00D94F73 51 push ecx00D94F74 53 push ebx00D94F75 56 push esi00D94F76 57 push edi00D94F77 60 pushad00D94F78 8B15 B834E200 mov edx,dword ptr d... 阅读全文
posted @ 2012-06-08 19:52 瓜蛋 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 最开始考虑strcpy的性能的时候,只考虑了要4bytes一起拷贝。但是忽略了一个关键问题,就是如何判断字符串的结束。由于字符串可以从4bytes中任意一个byte结束,所以需要判断是否有任何一个byte为0。如果对一个4bytes拆分成4个byte分别判断,那4bytes一起拷贝节省下拉性能立刻浪费掉了。今天看到Newer2k的回复,才重新开始考虑这个问题。拿到C++的strcpy函数一看,源代码如下:mov edi,[esp+8] ; edi points to dest stringcopy_start:: mov ecx,[esp+0ch] ; ecx -> sorc strin 阅读全文
posted @ 2012-06-07 23:36 瓜蛋 阅读(968) 评论(0) 推荐(0) 编辑
摘要: I just tried compiling a couple of C++ snippets on VS2010 and analyzed the executables on IDA Pro. Something I noticed is that there most of them have something like the following at the start(shortly after a call to __security_check_cookie)xor eax, ebpand something likexor ecx, ebpat the bottom. Wh 阅读全文
posted @ 2012-06-07 20:04 瓜蛋 阅读(968) 评论(0) 推荐(0) 编辑
摘要: 计算机中数码的表示:定义-》正数:原码,反码,补码相同。负数:原码为其对应正数原码最高符号位取反。 反码为其原码除符号位外都取反。 补码为其原码除符号位外取反加1。所以最高位符号位都不变。补码机:正数补码为其原码,负数为其正数原码取反加1。NEG指令,相当于0-OPR,并影响进位标志CF.数学意义上相当于:相当于0-OPR在计算时实际是以补码形式运算,运算时只有0不影响CF,其它情况都影响CF.为什么,请看以下分析:(1)假设有数:a=3;那么:NEG a分析:a补码为0011,0的补码为0000,所以0000-0011最终会向高位借1所以会有CF=1(2)假设有数:a=-3;那么:N... 阅读全文
posted @ 2012-06-03 02:35 瓜蛋 阅读(3216) 评论(0) 推荐(0) 编辑
摘要: 汇编标志位:标志名 标志 1 标志 0OF (溢出标志) OV NVDF (方向标志) UP DN IF (中断标志) DI EI SF (符号标志位) PL NGZF (零标志) NZ ZRAF (辅助进位标志位) NA AC PF (奇偶标志) PO PE CF (进位标志 ) NC CY英文解释:NV: no overflow OV: overflowUP: up DN:downDI: disable interrupt EI: enable interruptPL: plus NG: negativeNZ: no zero ZR: zeroNA: no assistant carry. 阅读全文
posted @ 2012-05-20 12:45 瓜蛋 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 用断点(OD中)拦截发包函数bp sendbp WSASendbp sendtobp WSASendto收包 拦截bp recvbp WSARecvbp recvformbp WSARecvform拦截窗口:bp CreateWindow 创建窗口 bp CreateWindowEx(A) 创建窗口 bp ShowWindow 显示窗口 bp UpdateWindow 更新窗口 bp GetWindowText(A) 获取窗口文本 拦截消息框:bp MessageBox(A) 创建消息框 bp MessageBoxExA 创建消息框 bp MessageBoxIndirect(A) 创建定制消 阅读全文
posted @ 2012-05-19 17:38 瓜蛋 阅读(659) 评论(0) 推荐(0) 编辑
摘要: 依赖倒转原则:强内聚:像CPU一样,别的厂商木有办法造。因为看不见内部。松耦合:像CPU的针脚一样,主板厂商知道怎么造主板能用cpu依赖倒转原则:抽象不应该依赖结节,细节不应该依赖于抽象。说白了就是针对接口编程,而不是针对实现编程。依赖倒转原则:高层模块不应该依赖低层模块。两个都应该依赖抽象。抽象不应该依赖结节。细节应该依赖抽象。有些时候为了代码复用,一般会把常用的代码写成函数或类库。这样开发新项目时,直接用就行了。比如做项目时大多要访问数据库,所以我们就把访问数据库的代码写成了函数。每次做项目去调用这些函数。这有什么问题呢?我们要做新项目时,发现业务逻辑的高层模块都是一样的,但客户却希望使用 阅读全文
posted @ 2012-05-17 21:52 瓜蛋 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 开放-封闭原则:软件实体(类,模块,函数等等)应该可以扩展,但是不可修改为适应不断变更的新需求,就及早的想办法应对发生更大改变的可能。最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。比如:之前的加法程序,很快在一个client类中就能完成(http://www.cnblogs.com/zhangdongsheng/archive/2012/03/25/2417224.html)。此时变化还没有发生,如果我们再加一个减法功能,你发现,增加功能需要修改这个类。这就违背了今天的“开放-封闭”原则,于是你就考虑重构程序。增加一个抽象运算类,通过一些面向对象的手段 阅读全文
posted @ 2012-04-10 21:04 瓜蛋 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 最近不知怎么,很惆怅,经常叹气。。原因可能是 事业和女人都出现了让我难以选择的地步。突然发现我没有以前那么做什么决定都坚定不移了。而我又觉得,我以前那种坚定不移是那么的正确,可现在想坚定不移的做一个决定是那么难。或许是压力太大的原因吧。人孤单了,会想很多的事,而又在某中情况下,想的事情越少对自己越好。这个周末几乎没出门, 看了几部电影,也看了看电视。真的好长时间没有看过电影和电视了,因为时间都花在了学习、玩游戏、惆怅中。不过这周末看了几部电影,看了看电视剧。心情一下好了许多,也从中体会到了自己本身的一些问题。首先是在对爱情的问题,我总是以我爸爸那样的遭遇来恒量我自己的爱情,现在想起是多么的荒唐 阅读全文
posted @ 2012-04-08 18:49 瓜蛋 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 就一个类而言,应该仅有一个引起它变化的原因。我们在做编程的时候,很自然的会给一个类添加各种各样的功能,比如我们写一个窗体应用程序,一般都会生成Form1这样一个类,于是我们就把各种各样的功能,像商业运算法呀,像数据库访问啊,都写到类中,这就意味着,无论任何需求改变,我们都需要改变这个窗体类,这其实很糟高的,维护麻烦,复用不可能,也缺乏灵活性。单一职责原则(SRP) ,就一个类而言,应该只有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抵制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。当然, 阅读全文
posted @ 2012-04-08 00:26 瓜蛋 阅读(263) 评论(0) 推荐(0) 编辑
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 62 下一页