wxPython写的图片格式转换工具ImageConverter

2014年1月17日 没有评论

最近看了一下wxPython,这是wxWidgets的Python版本,而wxWidgets是一个跨平台的GUI框架。这个东西用来开发一些GUI小工具还是挺方便的,当然命令行处理的方式更加简单快速,但如果一定要有界面的话,就不得不考虑一个GUI框架了。
不过对于图片格式转换来说,使用PIL(Python Imaging Library)只需要一句代码就能解决了,所以主要的工作还是在界面的设计以及响应上面。wxPython的界面布局使用Sizer来管理,类似于Java AWT里面的Layout,对[……]

继续阅读

CreateProcess的命令行参数

2013年12月14日 1 条评论

最近使用CreateProcess创建rundll32.exe进程,发现并没有正常加载DLL,后来才发现是命令行参数传错了,CreateProcess并不是我想象的那样,网上找了一下,发现还有许多东西不是想的那么简单。下面的文字翻译自《INFO: Understanding CreateProcess and Command-line Arguments》
创建32位进程时CreateProcess的行为
案例1
如果传递了ApplicationName参数,且CommandLine参数是NUL[……]

继续阅读

[HDUSEC CTF]逆向分析彩蛋 Crack Hide

2013年11月26日 没有评论

这是HDUSEC CTF决赛的一道逆向题,最开始是不可见的,后来才公布。运行程序后需要在编辑框输入一个key,然后就是点击按钮了,界面很简陋,没有多看就用IDA分析了。
首先需要找到WinMain函数,这个不多说了。发现这是通过调用DialogBoxParam创建的对话框,那么可以去看窗口过程函数,稍微看一下发现字符串都是加密的,这个跟踪一下发现是通过XOR加密了(0x23),分析一下按钮点击的逻辑为:先获取用户的输入,然后经过3个函数的处理分别设置3个flag,只有都通过的时候才会弹出Mess[……]

继续阅读

[HDUSEC CTF]逆向分析Final

2013年11月12日 16 条评论

这是杭州电子科技大学信息安全竞赛(HDUSEC CTF)一个比较坑爹的题目,运行程序之后电脑就自动关了,如果直接在真机测试,那丢点数据也在所难免了,呵呵~ (注:本文是在比赛结束后发的
这个时候,你很可能拿起你的OD准备动手了,可是当你刚载入OD的那一瞬间,屏幕又黑了,看了看主机箱,擦,灯灭了,电脑有关了,这尼玛不是坑爹么!
别哭,开机继续搞!把程序载入PEiD,看,有TLS呢!当然啦,大概就猜TLS里面有坑爹的代码。这个TLS可以看也可以不看的,但是出于好奇心,我还是忍不住看了下。那还是用I[……]

继续阅读

CMD批处理执行多个命令

2013年10月12日 4 条评论

项目中需要通过cmd执行一串命令,这个命令中会执行多个程序,且要求顺序执行,最开始使用的是&&连接多个命令:
taskkill /f /pid 1234 && 命令2 && 命令3
发现taskkill执行之后就不执行了,目标进程确实被杀掉了,但就是不知道为何就不执行了。网上的解释是使用&&连接的命令,如果前面的执行失败,那么后面的也就不会执行了。当然我没办法弄清楚这里taskkill是否真的成功了,虽然效果确实达到[……]

继续阅读

分类: Windows开发 标签: ,

[XDCTF]Shellcode DIY

2013年10月7日 4 条评论

国庆参加了XDCTF,被虐的相当惨,不过时间安排确实不怎么好,时间安排在前六天,先提交且通过的得分高,越往后交分数越低,偏偏还要搞在1号0:00开始,相当的操蛋的安排。另外就是这是组队赛,大家很难把假期全部贡献在比赛上,以至于很多题目都没时间做了。不过玩玩就好,参加一下总是涨了点知识,写点笔记。(这次比赛许多大牛都出来厮杀了,场面相当激烈)
溢出部分有一个编写Shellcode的题目,要求ShellCode运行后能够监听4444端口,并且能够执行从控制端传输过来的其他ShellCode。现成的当[……]

继续阅读

C++单例模式Singleton内存回收

2013年9月20日 3 条评论

单例模式(Singleton)也称为单件模式,其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,操作系统只会弹出一个任务管理器等。
单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显的很不优雅。 使用全局对象能够保证方便地访问实例,但是不能保证只声明一个对象——也就是说除了一个全局实例外,仍然能创建相同类的本地实例。
GoF的《设计模式》一书中给出[……]

继续阅读

MSVC CRT运行库启动代码分析

2013年9月14日 没有评论

在程序进入main/WinMain函数之前,需要先进行C运行库的初始化操作,通过在Visual Studio中调试,通过栈回溯可以找到位于crt0.c中的_tmainCRTStartup函数,这个函数负责进行一些初始化操作,_tmainCRTStartup的上一层调用来自kernel32.dll。这里简单分析一下crt0.c的代码。
实际上,C运行库代码又有两个版本,如果是静态编译的话代码位于crt0.c之中,如果是动态编译的话代码位于crtexe.c之中,这里可以通过项目属性的“配置属性”——[……]

继续阅读

Chrome源码阅读之basictypes.h

2013年9月1日 4 条评论

对Chrome的源码阅读主要集中在src\base下,这里面实现了很多基础组件,相对来说更容易理解,也是阅读其他源码的一个基础。

文件src\base\basictypes.h定义了一些基础数据结构和宏。

1. 明确拒绝不需要的函数
下面这部分代码用于禁用类不需要的复制构造函数、复制操作符以及隐式的构造函数。

2. 编译期间条件检查
下面这部分代码用于编译期间的条件检查,如果COMPILE_ASSERT(expr, msg)中expr不为true,就会定义一个名字为msg,大小为-1的数组,显然编译器不允许定义一个大小小于零的数组,从而中断编译操作。[……]

Chrome源码编译

2013年8月31日 16 条评论

还是在四月份的时候,一时心血来潮下载下来了Chrome的代码打算随便看看,当时候确实看了几天,不过后来因为一些其他事情就放下了,最近无聊了很久,终于还是决定继续看看。虽然编译没什么技术含量,不过体验一下还是不错,主要是环境的搭建,另外是体验一下大工程的编译时间。
一、环境简介
软件(包):7Zip、Visual Studio 2010、Visual Studio 2010 SP1补丁、Windows 8 SDK、June 2010 DirectX SDK等。
操作系统:Windows 7 x64[……]

继续阅读