自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (14)
  • 收藏
  • 关注

原创 无线四通道24位数据采集系统研发记(一)

无线四通道24位数据采集系统研发记前言很早就有个想法做一套能够记录和分析模拟信号数据的设备,但之前正处于想法超过实际能力的阶段,因此也就只能想想作罢,但最近由于其它项目的需要,设计研发这套设备已经是迫在眉睫。通过很长时间的磨练虽然算不上炉火纯青,但目前的能力对于这个需求的实施还是绰绰有余。想法和条件都成熟接下来就是规划分析和设计制作了,从哪里开始呢?万事开头难,才初做研发的朋友我相信也有这样的经历。这里简单聊下我自己的一些经验,我对新项目的研发不管软件还是硬件都有一套自己的习惯和步骤,这些“套路”都是

2021-06-30 17:51:24 1066 3

原创 创建Z-Stack项目的工具(Create Z-Stack Project For IAR)

Create Z-Stack Project For IAR     做Zigbee开发用CC2530肯定会用到Z-Stack,而开发环境一般选IAR Embedded Workbench,但是麻烦的是每次新建一个Z-Stack项目工程就是噩梦,各种复制和修改烦人不得以,因此这个工具就是简化基于Z-Stack库创建项目的过程。有问题请与我联系!QQ441673604.***

2015-04-29 12:09:15 1596

原创 爆一个Symantec Ghost 软件漏洞!

Symantec Ghost 是目前最常见的系统备份软件,但该软件有众多安全漏洞,其一就是用户设置的加密密码可以被解密,而这个解密密钥也保存在GHOST文件头如下图黄色部分既是通过一个算法进行N次暴力运算,最后返回结果应为:BinaryResearch 字符串,这时N即为解密密钥,用这个N对红色部分再进行一次运算就可以得到加密密码,由于涉及到安全这里就不给出具体代码和算法。

2012-02-22 17:08:32 1207

原创 CRC-32C (Castagnoli) 校验算法优化(Delphi SSE优化算法应用之三)

CRC-32C (Castagnoli)  算法是 iSCSI 和SCTP 数据校验的算法,和常用CRC-32-IEEE 802.3算法所不同的是多项式常数CRC32C是0x1EDC6F41 ,CRC32是0x04C11DB7 ,也就是说由此生成的CRC表不同外算法是一模一样.CRC32 常规算法如下: function _CRC32CX86(Data: PByte; aLength:

2011-06-13 12:27:00 5438 2

原创 绕过 Enigma Protector 2.xx 注册保护

【文章标题】: 绕过 Enigma Protector 2.xx 注册保护【文章作者】: CodeGame【作者邮箱】: [email protected]【作者主页】: http://blog.csdn.net/codegame【作者QQ号】: 441673604【软件名称】: windows 计算器【软件大小】: 669kb【下载地址】: windows xp 系统自带【加壳方式】: The Enigma Protector 2.20 正版【保护方式】: The Enigma Protector  2.

2010-12-10 10:11:00 2465 6

原创 快速内存比较函数CompareMem(Delphi SSE优化算法应用之二)

function CGCompareMem(P1, P2: Pointer; Length: Integer): Integer; assembler;asm PUSH ESI PUSH EDI PUSH ECX PUSH EBX MOV ESI,P1 MOV EDI,P2 CMP ESI,EDI JZ

2010-09-04 17:33:00 3722

原创 快速FastPosChar算法(Delphi SSE优化算法应用之一)

应群友cjc要求改写了一个poschar的快速算法,实测速度比系统自带pos要快500%以上,这些都是归功于sse指令集发挥的作用。function CGPosChar(Ch: Char ; SAddr: PChar; SLen: Integer): Integer; // Ch -> AL; SAddr -> EDX; SLen -> ECXasm push esi test ecx, ecx jz @notfound test e

2010-07-28 15:48:00 1990 1

原创 深析DELPHI in 操作实现

群友探讨到这个问题顺便有空分析了下delphi编译器的实现方式,有错误地方敬请指出。function AnsiStrInCharSet(ch: char; CharSet: TSysCharSet): boolean;begin  Result := ch in CharSet;end;测试调用:if AnsiStrInCharSet('a', ['a'..'z']) then ...实际编译器翻译为以下代码:0045BF7A  |.  F3:A5         rep     movs dword pt

2010-07-27 15:23:00 1451 1

原创 Windows XP 常用内核数据结构定义[Delphi/Pascal格式]

windows几个重要的内核数据结构虽然网上也有相关的定义,但个人觉得不齐全定义不规范,因此用一天时间使用WinDbg+Win2000sourcecode重新定义了常用的内核数据结构,并尽可能还原微软的原结构定义,每个结构都递归到最子层的结构并且通过了测试。通过这次工作过程不仅使自己得到一次学习的机会,而且提高了自己的整体软件架构规划设计水平。(如果转帖请著名出处,谢谢。){*********

2010-04-10 00:31:00 1081 1

原创 CodeGear2007到CodeGear2009全系列自动破解工具更新到v1.0.0.338

RadStudioPatch v1.0.0.338软件大小: 947K 更新时间: 2009-04-17 联 系 人:[email protected]开 发 商:http://blog.csdn.net/codegame下载地址: http://www.12g.cn/RadStudioPatch.rar软件类别: 开发工具软件语言: 简体中文 应用平台: Win9x/WinNT/Win2000/

2009-04-17 12:05:00 1552 10

原创 CodeGear2007到CodeGear2009全系列自动破解工具更新到v1.0.0.237

RadStudioPatch v1.0.0.237软件大小: 947K 更新时间: 2009-03-27 联 系 人:[email protected]开 发 商:http://blog.csdn.net/codegame下载地址: http://www.12g.cn/RadStudioPatch.rar软件类别: 开发工具软件语言: 简体中文 应用平台: Win9x/WinNT/Win2000/

2009-03-28 00:15:00 1095

原创 CodeGear2007到CodeGear2009全系列自动破解工具

RadStudioPatch.exeCodeGear2007到CodeGear2009全系列自动破解工具,支持未来新版本,数据在线更新,比原来老版本更完善更智能.把RadStudioPatch.exe拷贝到你的CodeGear安装目录下的Bin目录,和Bds.exe在一起,然后直接运行就能使用无须再使用任何破解工具,即使提示版本到期或者无序列号也能正常使用.需要注意的是bds.exe一定要保证是原

2009-01-13 15:25:00 1173 2

原创 360安全卫士Dat资源文件读取工具

360安全卫士Dat资源文件读取工具下载地址:http://download.csdn.net/source/904700

2008-12-24 16:24:00 2345

原创 CodeGear RadStudio Delphi 2007 Delphi2009 最新破解补丁集

CodeGear RadStudio Delphi 2007 Delphi2009 最新破解补丁集 

2008-11-29 00:49:00 2723 1

原创 DELPHI求乱序数组最小值快速算法(Delphi MMX优化算法应用之三)

type PMyList = ^TMylist; TMylist = array of word;function GetMinValue(List: PMyList):Word; stdcall;var ForCount, ListCount,i: Dword; MAXVaule: int64; List0Address:

2008-07-06 17:52:00 1766

原创 DELPHI大内存清零快速算法(Delphi MMX优化算法应用之二)

由于DELPHI里面动态数组的初始值并不是时时为0,对于一维数组每次使用前先SetLength后然一般做法都是使用FillChar来清零,但如果是超过几十M的数组如果FillChar来清零效率就很底,为此我专门写了一些清空数组或者内存的优化代码. 1.使用MMX指令优化的清零内存代码:procedure ZeroMemoryMMX(Destination: Pointer;

2008-07-06 17:42:00 2959 1

原创 一种高速内存校验算法(Delphi MMX优化算法应用之一)

最近碰到一个项目需要对内存数据进行检测,确定是否和原始值一样,看了现成的算法MD5 CRC 等,感觉速度不太理想,因此动手自己写了用于检测内存数据的高速算法.该算法利用了CPU的MMX微指令的单指令多数据优点来提高校验速度.对于大数据量校验尤其明显.1.获取原始内存数据校验值算法:function GetMemoryValue(aSource: Pointer; aSize:

2008-07-06 17:14:00 2044 3

CG_EPPROM24C.rar

支持Meag8、C8051等系列MCU的24Cxx全系列ROM储存器封装库 24C01,24C02,24C04,24C08,24C16,24C32,24C64,24C128,24C256,24C512,24M01 /*按页写入数据,不支持跨页*/ extern void CG_EPPROM24CPageWrite(t24CREALADDRESS * Address, uchar *data); /*按页读取数据,不支持跨页 */ extern void CG_EPPROM24CPageRead(t24CREALADDRESS * Address,uchar *data); /*提供虚拟逻辑寻址,按块、结构读写数据,支持任意长度任意起始地址跨页操作,不保证正确性 */ extern void CG_EPPROM24C_RW(uchar Direction, const uint32 VirtualAddress, uchar *data, uint16 Length); /*提供虚拟逻辑寻址,按块、结构读写数据,支持任意长度任意起始地址跨页操作,使用CRC16校验块数据,保证数据读取正确性 */ extern bool CG_EPPROM24C_BlockRW(uchar Direction, const uint32 VirtualAddress, tEPPROM24CBLOCK *Block); /*清空储存器 */ extern void CG_EPPROM24C_Erase(void); /*智能识别24C系列型号 */ extern eEPPROM24Ctype CG_EPPROM24CGetDeviceType(void); /*EPPROM24CXX初始化函数*/ extern bool CG_EPPROM24CInit(const eEPPROM24Ctype DeviceType); /*测试储存器*/ extern bool CG_EPPROM24CTest(const eEPPROM24Ctype DeviceType , tEPPROM24CTESTRET * Result);

2020-05-23

CRC32计算DELPHI汇编优化版

* 单元名称:uCRC32.pas * 单元作者:CodeGame * 用 途:CRC32计算单元 * 提供函数: function CRCFile(const FileName: string):DWORD; function CRCString(Str: string): DWORD; function CRCBuffer(const Buffer: Pointer; const Length: Cardinal): DWORD; * * 修改记录:2010-7-17 16:15:45

2019-12-24

DELPHI分级别调试日志类,支持多种类型输出,支持多线程模式.

* 单元名称:uDebugLog.pas * 单元作者:CodeGame * 用 途:分级别调试日志类,支持多种类型输出,支持多线程模式. * 提供类表: TCGL_DebugLogs * 提供函数: procedure DebugLog_Init(LogsFileName: string = ''; LogsPath: string = ''; LogMethod: TLogMethod = lmAllLogs; LogLevel: TLogLevel = llMedium); procedure DebugLog_Write(const LogSt

2019-12-24

MEGA88PA硬件序列号获取代码

MEGA带PA系列的8位单片机内部都有一个唯一signature id,该代码可以读取这个signature id用来做硬件识别或者授权。 tUUID CG_GetUUID(void) typedef struct { uint8 osc; //RC Oscillator Calibration Byte. Z-Pointer Address=0x0; uint8 sig[3]; //Device Signature Byte. Z-Pointer Address=0x0,0x2,0x4; uint8 uid[10]; //serial number Byte. Z-Pointer Address=0xE~0x17; }tUUID;

2019-12-24

SET1602YBL00 (ks0074)液晶屏AVR驱动源码

SET1602YBL00 (ks0074) LCD液晶屏的完整资料包括驱动和定义。 void CG_LCD_ks0074_Write(uchar data,uchar RS) void CG_LCD_ks0074_Init(void) void CG_LCD_ks0074_SetPos(uchar x,uchar y) void CG_LCD_ks0074_DispChar(uchar x,uchar y, uchar dat) void CG_LCD_ks0074_DispString(uchar x,uchar y, uchar *str)

2019-12-24

AD9850 DDS数字频率合成器 AVR驱动代码

AD9850 DDS数字频率合成器 AVR驱动代码 extern void CG_DDS9850_Init(void); extern void CG_DDS9850_Rest(void); extern void CG_DDS9850_Write(double FRQ_HZ);

2019-12-24

AndroidManifest.xml

抖音安卓版APP的AndroidManifest.xml 文件通常是加密的,这里提供了解密后的文件。

2019-12-24

Create Z-Stack Project For IAR

做Zigbee开发用CC2530肯定会用到Z-Stack,而开发环境一般选IAR Embedded Workbench,但是麻烦的是每次新建一个Z-Stack项目工程就是噩梦,各种复制和修改烦人不得以,因此这个工具就是简化基于Z-Stack库创建项目的过程。有问题请与我联系!

2015-04-29

过Enigma Protector 2.xx 注册保护

【文章标题】: 绕过 Enigma Protector 2.xx 注册保护 【文章作者】: CodeGame 【作者邮箱】: [email protected] 【作者主页】: http://blog.csdn.net/codegame 【作者QQ号】: 441673604 【软件名称】: windows 计算器 【软件大小】: 669kb 【下载地址】: windows xp 系统自带 【加壳方式】: The Enigma Protector 2.20 正版 【保护方式】: The Enigma Protector 2.20 正版 【编写语言】: VC 【使用工具】: OllyDBG 【操作平台】: Windows XP sp3 【软件介绍】: 1+1=2 【作者声明】: 文笔菜的很请谅解,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! -------------------------------------------------------------------------------- 【详细过程】 参考了 http://unpack.cn/thread-59541-1-2.html 定位方式,迅速定位到了 Enigma 注册授权位置: 010F2CBF E8 CC76F3FF call calc_em.0102A390 010F2CC4 8B45 E8 mov eax,dword ptr ss:[ebp-0x18] 010F2CC7 E8 FC78F3FF call calc_em.0102A5C8 010F2CCC 50 push eax 010F2CCD E8 DE90FFFF call calc_em.010EBDB0 ; Check Registration Key Info 010F2CD2 85C0 test eax,eax ; Eax =1 Success! 010F2CD4 0F95C0 setne al 这里010EBDB0 这个CALL负责检测注册码是否正确,正确返回1 否则返回0,由于 Enigma有多线程内联补丁保护因此不能 直接硬写此处代码,所以我们采用了硬件断点HOOK来实现。 1:定位PatchAddress: 先看此块内存信息: 地址=01026000 大小=002F4000 (3096576.) 属主=calc_em 01000000 区段= 类型=Imag 01001002 访问=R 初始访问=RWE 这块内存实际是Enigma的内置DLL授权模块,此块DLL是被加密压缩过,因此也无法直接patch,通过对比加不同的程序 发现这块区域解压后的代码都不变: $+CCCBF > E8 CC76F3FF call calc_em.0102A390 $+CCCC4 > 8B45 E8 mov eax,dword ptr ss:[ebp-0x18] $+CCCC7 > E8 FC78F3FF call calc_em.0102A5C8 $+CCCCC > 50 push eax $+CCCCD > E8 DE90FFFF call calc_em.010EBDB0 ; Check Registration Key Info $+CCCD2 > 85C0 test eax,eax ; Eax =1 Success! $+CCCD4 > 0F95C0 setne al 因此PatchAddress = BaseAddress+PatchOffsetAddress,通过上面分析得到 Enigma Protector 2.20 的 PatchOffsetAddress = 0xCCCD2 ,不同版本的PatchOffsetAddress 有可能不一样,BaseAddress 的获取就更简单了, 直接搜索区段判断VirtualSize为0x002F4000的VirtualAddress+GetModuleHandle(0)即为BaseAddress,整理公式: PatchAddress = GetModuleHandle(0)+VirtualAddress+0xCCCD2 定完毕。 2.硬件Hook: 这里我们采用AddVectoredExceptionHandler向量化异常API来实现,具体细节请自己google,重点讲下Hook触发后的过程 由于我们Patch点为$+CCCD2 > 85C0 test eax,eax ,因此只需要模拟操作EFlags然后跳过此段指令即可: pException^.ContextRecord^.EFlags := $202; //TEST eax,eax pException^.ContextRecord^.Eax := 1; //TEST eax,eax PException^.ContextRecord^.Eip := PException^.ContextRecord^.Eip + 2; //Nex 3.整体封装: 这里我们采用是把硬件HOOK和处理的过程都封装成DLL 然后导出一个GoPatch的函数供目标程序调用,那么如何使目标程序 加载并执行我们的GoPatch函数呢,我想办法很多注入,远线程等等。。这里我采用了劫持EIP的方式使目标程序加载我们的 DLL并执行GoPatch函数。 到这里已经全部完成,执行GoPatch后任意输入或者不输入用户名、注册码都可以直接绕过Enigma 的注册保护直接执行。

2010-12-10

Windows Kernel Struct Define

windows几个重要的内核数据结构虽然网上也有相关的定义,但个人觉得不齐全定义不规范,因此用一天时间使用WinDbg+Win2000sourcecode重新定义了常用的内核数据结构,并尽可能还原微软的原结构定义,每个结构都递归到最子层的结构并且通过了测试。

2010-04-10

360安全卫士Dat资源文件读取工具

360安全卫士Dat资源文件读取工具 可以读取升级补丁信息

2008-12-24

完成端口IOCP Socket DELPHI控件

完成端口IOCP Socket DELPHI控件

2008-11-29

DELPHI 模拟GoogleMap的实现

模拟GoogleMap的实现,使用DELPHI写成.

2008-08-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除