Skip to main content

Posts

Showing posts from January, 2010

pygtk 异步显示对话框

需求是这样,我有一个主窗口,有自己的事情做,同时需要监视一个文件,如果有了变动就蹦个对话框出来,一开始的想法是 def handler(): dialog = gtk.MessageDialog(...) dialog.run() dialog.destroy() gobject.threads_init() gtk.gdk.threads_init() gtk.io_add_watch(source, gobject.IO_IN, handler) xxx_window.show() gtk.main() 结果是对话框能显示出来,但是点击ok之后就卡死了,ok按钮也保持在“按下”的状态 后来看到了http://old.nabble.com/Deadlock-problem-when-calling-messagebox-function-with-idle_add-td25027865.html 于是在handler首尾分别加上gtk.gdk.threads_enter() 和 gtk.gdk.threads_leave() 就可以了

GameConqueror 0.09 -- Linux 游戏作弊工具

你是否喜欢游戏修改? 你是否一直在寻找`CheatEngine for Linux`? 那么你不该错过: Gameconqueror 是一款Linux游戏修改工具,用PyGTK写成,以scanmem作为后端。 我的目标是实现CheatEngine的大多数功能,成为名副其实的`CheatEngine for Linux` 现在已经实现了基本的搜索功能,支持不同的数据类型和搜索类型,如下: 数据类型:不同长度的类型:int{8/16/32/64}, float{32/64},未知长度的类型:int, float, 未知类型:number, 字节串和字符串:bytearray, string 搜索类型:相等,大于,小于,变化,未变,增大,减少 ============================================= 下载: PPA https://launchpad.net/~coolwanglu/+archive/scanmem 我只在64bit Karmic下进行了测试,其他环境如果不能正常使用请告知,谢谢 SVN svn checkout http://scanmem.googlecode.com/svn/trunk/ scanmem 主页: http://code.google.com/p/scanmem/ 下载时注意选择0.09版本 运行需要python和python-gtk2, 编译需要libreadline(大多数发行版应该都默认安装吧) ============================================= GameConqueror的BUG或者不恰当的使用会导致程序崩溃,请务必注意备份数据,资料等等。 安装后应该在“游戏”类别里出现菜单项,也可以直接运行gameconqueror(请在终端内运行,见下) 查看Value的悬停提示(tooltip)可以了解各种搜索语法,参考了金山游侠 至于那个烦人的终端窗口,现在只能在这里看到搜索进度和出错信息。我之前主要是实现scanmem的各种功能,界面改进则是下个版本的目标 ============================================= 未来考虑实现的功能: - 界面改进(搜索进度条,出错提示,用户交互等等) -...

GameConqueror 0.09 -- Linux Game Hacking Tool

If you are a game hacker If you've been looking for a `CheatEngine for Linux` Then you can't miss this. ============================================== GameConqueror is a game hacking tool for linux, it's written in PyGTK and uses scanmem as its backend. It's supposed to be with most useful features of CheatEngine for Linux. Currently, I've implemented almost everything about scanning, involving variant data types and scan types: Data Types: int{8/16/32/64}, float{32/64}, unknown type(int or float) and unknown width(will try each of them), byte array and string Scan Types: equal, greater, less, changed, unchanged, increased(by), decreased(by) This should be enough for most cases, so I decided to release it at the current status. ============================================= Here's how you can get it PPA (for Ubuntu users) https://launchpad.net/~coolwanglu/+archive/scanmem (I've not test it in 32bit environments or Jaunty, do please inform me if it doe...

autotools, deb 和 PPA 不完全攻略

最近在给自己的GameConqueror折腾 PPA, 那少不了折腾标题里的三样东西。下决心看了一遍三个东西的文档,整理如下 链接 autotools: Autoconf Automake deb packaging: Debian New Maintainers' Guide Ubuntu Packaging Guide Building Package for PPA PPA stuff PPA Overview Uploading 那么一个一个说: 注意: 本篇系个人总结而非教程,如有疑问请参阅上述链接。 1. AUTOTOOLS autotools 的精髓是让开发者免于手写繁琐的Makefile,同时又让最后生成的源码包符合GNU的一套标准。然而autotools本身也很难用。。。入门门槛比较高。当然难用是相对的,掌握了基本要领就可以了 需要手写的文件一般是一个configure.ac和若干个Makefile.am, ac和am分别是autoconf和automake的缩写 configure.ac定义了源码包整体信息,如名称,版本,编译环境等,最后根据configure.ac输出configure,而configure可以判断编译环境是否满足需要,这就是著名的./configure && make 的前一半 Makefile.am则是Makefile的另一种格式,由于绝大多数C/C++或一些其他语言的程序编译,打包,安装等等都是同一模式,所以才有了automake,Makefile.am的作用是决定程序的编译方式,还有各个文件的类型,是否打包,安装位置等等,这些由automake生成许多Makefile.in一起打包,等到编译时./configure会把Makefile.in再变成Makefile 关于configure.ac, 最开始可以用autoscan生成一个模板,自己慢慢改,有许多宏,都可以在autoconf的网页上查到 一般(我看到的)分为两个部分,前一半检查编译环境,后一半把检查的结果输出,一般就是进行宏替换等等。 检查编译环境,一般无非是编译器(是否存在,编译选项,特性支持),库(是否存在,版本),条件编译(是否启用的某个功能,或其他编译时指定的参数),这一部分去查AC_CHECK*,AM_CONDITIONAL这些宏...