10 2008 档案
摘要:static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见。这一点是它与全局变量的区别。Tips: A.若全局变量仅
阅读全文
摘要:原作:王少华转自:http://www.zdnet.com.cn/developer/code/story/0,2000081534,39142983-1,00.htm步骤1:首先在你的进程中创建函数MyFunc,我们将把它放在另一个进程中运行,这里以windows计算器为目标进程。static DWORD WINAPI MyFunc (LPVOID pData){//do something//...//pData输入项可以是任何类型值//这里我们会传入一个DWORD的值做示例,并且简单返回return *(DWORD*)pData;}static void AfterMyFunc (voi
阅读全文
摘要:HOOK是一种WINDOWS下存在很久的技术了。 HOOK一般分两种1。HOOK MESSAGE2。HOOK API 本问讨论的是HOOK API之修改IAT。(如果你是HOOK高手就不要看了) 在最初学HOOK-API的时候通常都是通过覆盖地址和修改IAT的方法。通过这两种技术,我们基本都可以实现对本进程的API函数进行HOOK了。但是在高兴之余会有点遗憾,怎么才能HOOK其他进程的API函数呢?怎么才能对一个API函数进行全局的HOOK呢?下面是我的一个简单的“HOOK其他进程API函数”的实现。(对另一进程的MessageBoxA这个函数进行HOOK) 其实里面的应用了两个技术1。远程线
阅读全文
摘要:Public Function GetProcessPath(ByVal dwProcessId As Long) As String Dim ntStatus As Long Dim objBasic As PROCESS_BASIC_INFORMATION Dim objFlink As Long Dim objPEB As Long, objLdr As Long Dim objBaseAddress As Long Dim bytName(260 * 2 - 1) As Byte Dim strModuleName As String, objName As...
阅读全文
摘要:GetCurrentProcessID 得到当前进程的ID OpenProcessToken 得到进程的令牌句柄LookupPrivilegeValue 查询进程的权限 AdjustTokenPrivileges 判断令牌权限要对一个任意进程(包括系统安全进程和服务进程)进行指定了写相关的访问权的OpenProcess操作,只要当前进程具有SeDeDebug权限就可以了。要是一个用户是Administrator或是被给予了相应的权限,就可以具有该权限。可是,就算我们用Administrator帐号对一个系统安全进程执行OpenProcess(PROCESS_ALL_ACCESS,FALSE,
阅读全文
摘要:一:技术总结 随着互联网络的飞速发展,各种各样的大小网站不断地涌现,在这些大小网站中,动态的网站以其实用性、多样性占据了绝对的优势。 由于ASP系统在互联网上广泛的应用,针对ASP系统的脚本攻击最近闹得是红红火火。在这些攻击中,攻击者多是利用注入、暴库、旁注、cookies欺骗等手段获取管理员的权限, 通过直接上传或后台备份等各种入侵手法 取得网站webshell继而控制整个站点 接着通过webshell提升权限获取服务器管理权限。 什么是webshell?webshell就是一个相应脚本语言编写成的,具有在线编辑、删除、新增文件、执行程序及SQL语句等功能的脚本文件,具有随意更改目标首页,删
阅读全文
摘要:软件保护技术--软件保护建议 本节将给出关于软件保护的一般性建议,这些都是无数人经验的总结。程序员在设计自己的保护方式时最好能够遵守这里给出的准则,这样会提高软件的保护强度。 (1)软件最终发行之前一定要将可执行程序进行加壳/压缩,使得解密者无法直接修改程序。如果时间允许并且有相应的技术能力,最好是设计自己的加壳/压缩方法。如果采用现成的加壳工具,最好不要选择流行的工具,因为这些工具已被广泛深入地加以研究,有了通用的脱壳/解压办法。另外,最好采用两种以上的不同的工具来对程序进行加壳/压缩,并尽可能地利用这些工具提供的反跟踪特性。(2)增加对软件自身的完整性检查。这包括对磁盘文件和内存映像的检.
阅读全文
摘要:软件保护技术--加密算法 1、RSA算法 2、DES算法 3、ElGamal算法 4、DSA算法 5、MD5算法 6、BLOWFISH算法1、RSA算法 它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。一、RSA算法 :首先,找出三个数,p,q,r,其中p,q是两个相异的质数,r是与(p-1)(q-1)互质的数......p,q,r这三个数便是priva...
阅读全文
摘要:软件保护技术---反跟踪技术 1、Anti-Debug1.MeltICE子类型类型:检测SoftICE、TRW2000平台:Windows9x、Windows NT原理:用CreateFileA( )或_lopen( )函数试图获得SoftICE的驱动程序"//./SICE"(Windows9X版本)、"//./SIWDEBUG"、"//./NTICE"(Windows NT版本)、"//./SIWVID"等的句柄,如果成功则说明SoftICE驻留在内存中。2.VWIN32_Int41Dispatch子类型类型:检
阅读全文
摘要:软件保护技术---常见保护技巧 1、序列号方式 (1)序列号保护机制 数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。 我们先来看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的...
阅读全文