代码改变世界

integer promotion

2013-03-17 20:46 by 放作夥, 329 阅读, 0 推荐, 收藏, 编辑
摘要:用小米的笔试题来举例吧1 void fun() 2 { 3 unsigned int a = 2013; 4 int b = -2; 5 int c = 0; 6 while (a + b > 0) 7 { 8 a = a + b; 9 c++; 10 } 11 printf("%d", c); 12 } 问输出什么?错误答案是1003,参考解释如下If both operands have the same type, then no further convers... 阅读全文

网页flash兼容浏览器代码

2012-10-27 10:26 by 放作夥, 1443 阅读, 0 推荐, 收藏, 编辑
摘要:只适用于IE内核:<EMBED style=" WIDTH: 1024px; HEIGHT: 768px" align=right src="XXXXXXXXX.swf" type=application/octet-stream quality="high" wmode="transparent" menu="false"></EMBED>为了使IE和Firefox都兼容,要用object元素<object data="xxxxxx.swf" 阅读全文

注册算法入门

2012-10-16 20:49 by 放作夥, 448 阅读, 0 推荐, 收藏, 编辑
摘要:上网下了个crackme,传说中的方法都不行,难道那些教程都坑爹。突发奇想重下了个OD,发现注释功能强了N倍,多了很多api注释,看着舒服多了,汇编句子也更容易理解了,建议大家如果感觉费劲可以下个diy过的od。下面是关键处的od里的汇编代码(根据输入的name算出序列号):004011C1 |> /6A 32 /push 0x32 ; /Count = 32 (50.)004011C3 |. |68 84624000 |push crackme2.00406284 ; |Buffer = crackme2.00406284,说明name字符串放在了00... 阅读全文

call传参之通过堆栈

2012-10-15 19:53 by 放作夥, 663 阅读, 0 推荐, 收藏, 编辑
摘要:常见的调用约定有:【例】按__stdcall约定调用函数test2(Par1,Par2)pushpar2;参数2pushpar1;参数1calltest2;{pushebp;保护现场原先的EBP指针,BP为基指(Base Pointer)寄存器,用它可直接存取堆栈中的数据,它的作用是在调用函数时保存ESP使函数结束时可以正确返回;加E(enhance)代表增强型寄存器,用于32位数据处理,类似AX与AL,AH的关系movebp,esp;设置新的EBP指针,指向栈顶moveax,[ebp+0C];调用参数2movebx,[ebp+08];调用参数1subesp,8;若函数要用局部变量,则要在堆栈 阅读全文

esp定律的一点说明

2012-10-15 17:47 by 放作夥, 218 阅读, 0 推荐, 收藏, 编辑
摘要:网上说的esp定律脱壳时都说到“当esp变红时下访问断点”却没说明为什么,其实od当寄存器变化时就会变红,也就是说实质是留意堆栈什么时候变化。 而把壳当成一个call,当调用壳这个call时会压栈,esp变红。 阅读全文

winhex注意

2012-10-13 22:11 by 放作夥, 314 阅读, 0 推荐, 收藏, 编辑
摘要:第一次用winhex,发现复制时不对,搜了一下,提示粘贴时要选最后一项,即ascii hex。另外如果如果有一件东西不想直接交给对方,就可以给对方16进制的代码让对方粘贴进winhex中再保存,也是相当于传送的效果,但是没给实物,相对较安全 阅读全文

意外

2012-10-13 17:17 by 放作夥, 121 阅读, 0 推荐, 收藏, 编辑
摘要:一直怀念linux的右键在终端中打开,原来win7也有,对着文件夹按shift加右键在命令行中打开 阅读全文

输入字符串长度

2012-10-13 10:46 by 放作夥, 248 阅读, 0 推荐, 收藏, 编辑
摘要:问:答:在内存中一个String方法的格式都是:SIze+内容。如果String定义的时候带packed关键字,那么Size是一个Byte,如果不带,那么是DWord。在高级语言中,定义一个String类型的参数。在Push进Call里面的时候。都是 压入 String的第一个字符的地址。所以,Esi的地址就是第一个字符的地址,而这个地址 -4就是Size。如果带packed,那么Esi-1就是Size。 阅读全文

base64

2012-09-13 17:09 by 放作夥, 281 阅读, 0 推荐, 收藏, 编辑
摘要:base64是很基本的加密算法,常用于邮件和迅雷的下载地址,下面是js版的算法代码和网页示例编码://分割成每6位,最大是111111,即63,所以共需要64个字符var base64EncodeChars = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M" 阅读全文

逆向工程——注册篇

2012-07-26 19:27 by 放作夥, 446 阅读, 0 推荐, 收藏, 编辑
摘要:共享软件要注册,于是很多人动了歪主意,然后美其名日——逆向工程。用“网络填表终结者(共享软件)”做例子简单介绍一下。下载了网络填表终结者后用langague.exe侦壳发现加的是aspack壳用aspcakdie脱壳后,就可以对它进行注册破解了。要达到免注册的目的可以有很多方式,简单介绍一下。1、 爆破先注册一下,用win32dasm反汇编一下下载的网络填表终结者的主程序FormGhost.exe,找到参考字符串(注册码错误),向上看代码发现call。。。jne。。。语句,这是一种经典的垃圾算法,意思就是跟正确注册码对比,如果错误则跳转到错误提示处(jump not equal---jne), 阅读全文
上一页 1 ··· 8 9 10 11 12 13 下一页