- 博客(22)
- 资源 (3)
- 收藏
- 关注
原创 处理ASProtect的Advanced Import Protect的一些想法和过程(3)
目标:找到哪些地址有 call 01ba0000代码,并且进入壳中后又进入哪个API函数。1、在进入01ba0000开始处写入代码,可以很容易根据ESP中的内容得到call 01ba0000这句代码的地址;获得CALL 入地址pushadpushfdmov eax,dword ptr [esp+24]//这时EAX中就是想要的mov ebx,dword ptr [地址1]
2012-12-17 18:16:31 392
原创 处理ASProtect的Advanced Import Protect的一些想法和过程(2)
从1中知道,ASProtect把CALL [***]和JMP [***]变成CALL &&&&&,在内存中调用API后加到CODE段中CALL &&&&的下一句还是其他地方呢?在call入12000000内后会两次调用VirtualAlloc得到两个内存,第一个记为00dd0000,第二个为00cc0000;大小都为1000.考虑以下情况:00401000 call 4
2012-12-17 18:15:53 411
原创 处理ASProtect的Advanced Import Protect的一些想法和过程(1)
被Advanced Import Protect方法处理后,原来的Call [********]和JMP [********]变成call 01ba0000(在别的机器上可能不是01ba0000),面对这个困难,我也拜读过不少大牛的文章,但始终有点迷糊,个中困难不再说了;试想一下,既然是修改了调用API的代码,那么在虚拟内存中还是会走进系统DLL中的,那么在进入01ba0000中后,对几个系统D
2012-12-16 21:09:19 417
原创 对壳的一些理解
需要两个文件:待加壳的a.exe和加壳程序。加壳程序对a.exe文件处理后,对a.exe做的手脚也就是清除或者加密原文件的IAT和各个段(代码和数据段等),并且会在a.exe文件中新增加一些内容,这些内容可能独立的在一个新的段中,也可能在原来的段中,一般新的内容是可执行的,这些新的内容就构成了外壳程序;外壳程序的作用就是对加壳程序的所作所为“负责“,加壳程序对a.exe文件各段加密和压缩,那外壳程
2012-12-16 21:08:32 407
原创 对Advanced Import Protection的一些想法
正常情况下调用API有两种方式:call [aaaaaaaa] 和JMP[aaaaaaaa]其中aaaaaaaa这个地址中保存的是API入口地址;对Advanced Import Protection的个人理解是对前面两种API调用的变形。变形1、call bbbbbbbb其中bbbbbbbb是处于壳利用VirtualAlloc申请的内存中,call bbbbbbbb完成对API的
2012-12-16 21:07:44 372
原创 Stolen Code的一些想法
偷取过程中会偷入口处和中间任意处;执行被偷取的代码时还会加入花指令。偷的过程:在对Code段解密后把被偷的地方不放回去,而不是从被偷的地方直接复制到申请内存中再清00的过程。识别被偷:偷入口,执行到原始Code段时不是明显的某种语言的入口标志;偷中间,执行到原始Code段后在某处又跳转到申请的内存中执行一些代码又回来Code段。针对偷入口,识别各种语言入口标志,把偷的复制回来;针对偷中
2012-12-16 21:07:08 823
原创 C++中数组名和指针的区别联系
第一个结论:#include "iostream.h"void main(){1、 char str[]="abcdef";2、int n[]={1,2,3,4,5};3、char *p=str;//4、 cout5、cout6、cout7、p++;8、str++;}7204看似指针和数组名是相同的,其实不然;第4行和第6行输出结果不
2012-12-16 21:01:51 360
原创 数组指针和指针数组
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array ,指向一个数组的指针,只要注意修饰词和被修饰词。指针数组:int *p[5];数组指针:int (*p)[5];“[ ]"优先级高于“ * ”的; 一般指针的使用,定义后 使用前要确定指针指向的位置,如下:int *p
2012-12-16 21:01:18 223
转载 引用的用处
一、什么是“引用”?声明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对其应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,
2012-12-16 21:00:48 293
原创 链表的创建、逆序等操作
#include "iostream.h"typedef struct List{ int a; List *pListNext;}LIST;void BuildList(LIST * &head,int n);//建立新的链表void RevertList(LIST * &head);//链表逆序void main(){ LIST *head=n
2012-12-16 20:59:53 281
转载 ASP.NET调用javascript脚本的常见方法小结
1、直接在前台调用 javascript 函数 很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript " 如: 复制代码 代码如下: function ShowName(str) { alert("您的名字为:("+str+")"); } using javascript
2012-12-16 20:59:14 346
原创 CSS学习相关
写法和使用:标签名1{属性1:参数1;属性2:参数2;....属性n:参数n}标签名2{}。。。标签名n{}注意:在.css文件中不使用标记,就像在.js文件中不使用一样,例子,mys1{color:green;font:16px}mys2{color:bule; font-family: arial}根据以上例子的使用说明:这里的字符颜色是
2012-12-16 20:57:03 276
原创 ASP.NET&&JS,得到像百度登录点击后 浮动+锁屏 的效果
效果图解释:1、灰色的部分是锁屏的,点击没有效果2、白色的“登录窗口”“浮动在上面”3、登录窗口中的按钮能和后台数据库连接通信 开发步骤:1、出现黑色的后界面 利用JS脚本 中的函数来动态创建DIV,并设置DIV的属性为透明和灰色,宽度和高度是screen,而不是Document.body的offsetwidth,offsetheight,否则会出现不是全屏都被DI
2012-12-16 20:56:39 839 1
转载 ...后台代码中如何调用 javascript 函数的问题! - ASP.NET专题(按钮事件中调用JS文件中函数)
通常javascript代码可以与HTML标签一起直接放在前端页面中,但如果JS代码多的话一方面不利于维护,另一方面也对搜索引擎不友好,因 为页面因此而变得臃肿;所以一般有良好开发习惯的程序员都会把javascript代码放到独立的js文件中,其他页面通过引入该js文件来使用相应的 javascript代码。 今天在做一个小新闻系统的管理页面时因为图方便,刚开始所有用到的自定义javasc
2012-12-16 20:55:38 1623
原创 JavaScript学习相关
函数的定义:第一种:关键字function,语法如下,function 函数名(参数列表) {函数内容主题};例子,function add(x,y){return x+y};第二种:利用new运算符和Function()构造函数动态定义函数;例子,var f=new Function("x","y","return x+y"); Function()函数
2012-12-16 20:54:30 360
原创 ASP.NET数据绑定章节注意
1、aspx页面从.cs代码中的类型继承而来,因而前台可以访问后台public属性的数据和方法2、数据绑定 a、;示例,,后台代码中要有Page.DataBind()或者 控件.DataBind();Page类的方法DataBind()调用是对Page子类的所有控件的同方法调用,作用是使表达式出现结果;string是后台代码.cs文件中的一个变量; b、后台代码设置控件
2012-12-16 20:53:20 291
原创 ASP.NET中页面之间的通信
子页与母版面间的通信1、子页访问母版页的控件; 法一:通过Master对象的方法FindControl方法查找控件,并转换相应控件,比如改变ID为Button1的按钮控件的文本,如下代码--- (Master.FindControl("Button1") as Button).Text = "ddd"; 其中as Button完成转换。代码要在事件中完
2012-12-16 20:52:32 466
原创 ASP.NET一些控件使用笔记
1、TreeView控件结点点击事件 目标:根据点击的结点不同来做不同的处理; var notestr=TreeView1.SelectedNode.Text;//结点的名称,也可以是值value switch (notestr)//这里可以是值和结点名 { case "关于系统":
2012-12-16 20:51:16 324
转载 C++:函数的递归调用相关
8个例子:1、//file 递归函数例1.cpp//递归函数实现逆向输出数组a[]中的各元素值#include"iostream.h"void fun(int a[],int len){ if(len==1) { cout return; } else{ cout fun(a,len-1); //recursive fun
2012-12-16 20:49:14 544
原创 收集汇编指令和机器码的对应关系(完善中)
50 PUSH EAX51 PUSH ECX52 PUSH EDX53 PUSH EBX54 PUSH ESP55 PUSH EBP56 PUSH ESI57 PUSH EDI58 POP EAX59 POP ECX5A
2012-12-16 20:48:40 2482
原创 ASP.NET连接数据库
利用ADO.NET访问数据库 注意:1、Access中OleDbParameter[] 参数顺寻一定要与其执行的Select语句内参数出现的书序保持一致否则:执行cmd.ExecuteNonQuery()语句时,返回受影响行数永远是02、命名空间:System.Data各种数据库必用命名空间System.Data.SqlCli
2012-12-16 20:47:41 363
原创 数据库及SQL语句相关
视图(VIEW):从一个或几个基本表(视图)导出的表,是一种虚表,实际在数据库中不存在,但是可以像操作其他表一样操作,操作的结果在实际表中体现。Student学号(sno)姓名(sname)性别(ssex)年龄(sage)所在系(sdept)001002003孟星冷燕王一男女男2
2012-12-16 20:46:32 520 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人