RGSSAD解密程序(基于RgssadUnpacker改进以支持RGSS3A)

近来玩小游戏需要解密Rgssad,发现网上已有人公开了Rgssad/Rgss2a的解密代码(RgssadUnpacker): http://blog.csdn.net/rgss2ad/archive/2011/02/16/6187475.aspx 但我遇到的是Rgss3a,随手google一下可以...

2014-01-23 11:38:19

阅读数 9842

评论数 1

在Lua 5.2中保护全局环境

Lua脚本语言十分强大,但是有一个问题就是全局可写,比如你定义一个全局变量很容易不小心被另一个同名变量给覆盖掉。 这种问题一旦出现是十分难以调查的,该文章介绍的这种机制可以解决该问题。 我已经在我自己的工程中应用了该技术,它可以达到以下目的: 1.全局变量不能直接在Lua中被修改 ...

2012-10-28 22:17:16

阅读数 4554

评论数 0

64位ubuntu下链接器的BUG

最近在维护一个多平台的库,其中有一个64位linux的版本,在维护中发现了一个奇怪的问题。 假设该库的工程由一个静态库libS.a和一个动态库libD.so构成,其中libS.a引用了系统的libdl.so(使用了dlopen函数),而libD.so用到了libS.a(但没有直接使用dl...

2012-10-17 15:48:50

阅读数 1451

评论数 1

stat.st_dev的陷阱

最近在写一个跨平台的文件操作类,其中有一项是获得某目录所在磁盘的剩余空间大小。 在linux上我采用了如下实现: 1. 使用stat(path, &st1)获得该目录的属性,其中的st1.st_dev为该目录所在设备(磁盘)的设备号 2. 使用fp = setmntent(_...

2012-09-28 16:49:41

阅读数 3167

评论数 0

C语言中浮点型数转化为整型数的陷阱

最近做嵌入式项目,把一段老代码一直到智能手机平台之后发现了意想不到的bug。简单来说就是一个负的FLOAT强转为WORD型会变成0,比如FLOAT f = -1.0;WORD w = f;w会变成0,而不是期待的0xffff(65535)。于是我在PC上用devc++(win版g

2011-07-29 10:47:46

阅读数 5095

评论数 1

[译] MoPaQ归档格式

MoPaQ归档格式© 2006-2010 Justin Olbrantz (Quantam) and Jean-Francois Roy (BahamutZERO). All Rights Reserved.在不修改本文的前提下对本文的散发和复制没有任何限制;但希望能够提供本文的链接以使每个人都能...

2010-05-23 13:59:00

阅读数 2465

评论数 1

i386 ABI之寄存器保护规则

一、保护原则    首先要明白ABI(Application Binary Interface, 应用程序二进制接口)主要是一个针对编译器的限定,它用以保证不同的编译器编译出的二进制代码以及同一编译器编译出的不同文件的代码之间可以安全交互。所以,如果我们要用高级语言和汇编混合编程,这里有些约定就必...

2010-01-05 22:00:00

阅读数 2993

评论数 0

键盘控制LED——S3C44B0X的IRQ编程

     在《简单的S3C44B0X Bootloader》一文中我所描述的Bootloader没有任何异常处理,这显然是很不实用的,下面我将结合键盘控制LED的范例来在该Bootloader中实现对IRQ的处理。     首先明确一些基本信息。根据原理图,在我的板子里,1x4键盘的4个按键分别接...

2008-07-03 14:33:00

阅读数 2064

评论数 3

基于S3C44B0X的128x64单色LCD编程控制

    最近忙于辞职、搬家、打扫卫生、请客吃饭、找工作等杂事,少有机会能够静下心来学习一些东西。趁着投出去的简历还没有动静的这段时间,决定开始着手一早就想做的事情,那就是LCD的编程控制。    本来买的这块板子就带一块128x64的单色点阵LCD,不玩岂不可惜了。于是乎大概重温了一下之前做的东西...

2008-06-30 13:26:00

阅读数 4404

评论数 2

简单的S3C44B0X Bootloader

    上次基于u-boot写了一个跑马灯程序,见 《第一个跑马灯程序》 。但是这里有个问题,离了u-boot它就不能用了,因为缺少很多系统初始化工作,也没有人能把它加载到RAM中去运行。因此,为了学习(好强大的理由。。。),我们需要自己实现一个bootloader,来替代u-boot做这些事情。...

2008-04-29 13:31:00

阅读数 8435

评论数 39

说说ARM汇编的LDR伪指令

我们知道ARM CPU中有一条被广泛使用的指令LDR,它主要是用来从存储器(确切地说是地址空间)中装载数据到通用寄存器。但不论是ARMASM还是GNU ARM AS,都提供了一条与之同名的伪指令LDR,而在实际中使用该伪指令的情况也较多,那他们有什么不同呢?下面我谈谈我的理解。    由于我使用G...

2008-04-27 17:20:00

阅读数 27699

评论数 8

第一个跑马灯程序

    最近准备转行做嵌入式,随弄来一块S3C44B0X的板子,准备好好研究一下。    板子便宜货,没啥特别完善的资料,都是和网上差不多的ADS环境。    因为平时还要上班,花了几个晚上的时间,总算是把u-boot和uClinux的编译和下载过程弄熟了。这不,好不容易等来一个周末,决心一定要弄...

2008-04-20 02:00:00

阅读数 12421

评论数 3

[转]用GNU工具开发基于ARM的嵌入式系统

作 者: 摩托罗拉苏州技术中心 许庆丰摘 要: 介绍如何利用GNU的工具开发基于ARM的嵌入式系统,以及使用编译器、连接器和调试工具的具体方法,为广大嵌入式系统开发人员提供一种低成本的开发手段。关键词: ARM GNU MC928MX1 gcc gdb gdbserver  当前,ARM公司的32...

2008-04-18 22:26:00

阅读数 1740

评论数 0

ubuntu下编译busybox失败的一种解决方法

    最近从澳门入手了部Motorola ROKR E6(OS内核是Linux的),就顺便研究了下该手机的交叉编译。    途中,编译busybox的时候遇到了怪异的错误:     GEN .depend     /home/xxx/busybox-1.1.3/include/bbconfigo...

2007-11-10 23:39:00

阅读数 3015

评论数 0

Linux源码中的mktime算法解析

 Linux源码中的mktime算法解析    我们知道,从CMOS中读出来的系统时间并不是time_t类型,而是类似于struct tm那样,年月日时分秒是分开存储的。    那么,要把它转化为系统便于处理的time_t类型,就需要算法进行转换。    我们都知道我们的公历还是比较复杂的,有大月...

2007-09-20 13:05:00

阅读数 15801

评论数 10

Linux内核中的可编程间隔定时器PIT

Linux内核中的可编程间隔定时器PIT(Programmable Interval Timer)    每个PC机中都有一个PIT,通过IRQ产生周期性的时钟中断信号来充当系统定时器。i386中使用的通常是Intel 8254 PIT芯片,它的I/O端口地址范围是40h~43h。    8254...

2007-09-15 19:32:00

阅读数 3810

评论数 0

[转]Rich Text Format (RTF) 中文版规范,版本 1.6

来源: http://tb.blog.csdn.net/TrackBack.aspx?PostId=140197.chinese{ font-size:12pt; font-family:"宋体"; background-color: white;}p{ font-size:1...

2007-06-18 09:55:00

阅读数 4060

评论数 0

LDT淡出江湖?

 如果你看过早期linux内核的代码,你可以发现里面每一个进程(任务)拥有一个tss段和一个ldt段描述 ,每个进程都使用自己的ldt中的代码段描述符和数据段描述符所表示的段作为进程自己的代码段和数据段。 但事实上这不是必需的。事实上linux到1.0的时候就已经放弃这种方法了。现在的linux使...

2007-01-13 16:26:00

阅读数 1216

评论数 2

Linux内核bootsect.S的一个小BUG

读Linux 2.4.33.4的时候发现一个不怎么显眼的bug,位置/arch/i386/boot/bootsect.S,第271行,read_track子程序处:read_track: pusha pusha  movw $0xe2e, %ax   # loading... message 2e...

2007-01-03 16:45:00

阅读数 1330

评论数 0

BIOS关于获取内存信息的调用

OS开机获取当前计算机的内存信息是一件很重要的事情,因为分页机制要用到它。来看看Linux是怎么做的吧 。读了0.11内核的人应该注意到了,linus使用int 0x15 ah = 0x88中断调用获取扩展内存的大小,代码极其简洁: mov  ah, 0x88int  0x15mov  [2], ...

2006-12-28 14:08:00

阅读数 4685

评论数 1

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