SN:
50AF9991CEBA5288381A455E7DD51737DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3CFD86CCD7FF1D7D1276122E3E2C8975FDDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3DDA96ADCCB98BEC36AFBC7C17CDB96B3
从RegQueryValueExA到ZwQueryValueKey
对于注册表的REG_MULTI_SZ类型的数据个人感觉一直比较蛋疼,一个是因为在Delphi下竟然没有相关的函数,第二个是因为对于这类型的数据在使用ssdt hook修改数据的时候出现了很多问题。
为了明白到底是怎么处理的,于是就把相关的调用流程跟踪了一遍。至于是什么程序调用的这里就不提了,直接贴代码吧。
103B29D8 8B4C24 18 mov ecx,dword ptr ss:[esp+0x18]
103B29DC 8B3D 34F0EE10 mov edi,dword ptr ds:[<&ADVAPI32.RegQuer>; ADVAPI32.RegQueryValueExA
103B29E2 894424 14 mov dword ptr ss:[esp+0x14],eax
103B29E6 8D4424 14 lea eax,dword ptr ss:[esp+0x14]
103B29EA 50 push eax
103B29EB 6A 00 push 0x0
103B29ED 6A 00 push 0x0
103B29EF 6A 00 push 0x0
103B29F1 68 088FFD10 push iTunes_1.10FD8F08 ; ASCII "SystemBiosVersion"
103B29F6 51 push ecx
103B29F7 FFD7 call edi
103B29F9 85C0 test eax,eax
103B29FB 75 48 jnz XiTunes_1.103B2A45
103B29FD 8B5424 14 mov edx,dword ptr ss:[esp+0x14]
103B2A01 52 push edx
103B2A02 50 push eax
103B2A03 E8 7820CDFF call iTunes_1.10084A80
103B2A08 50 push eax
103B2A09 FF15 84FEEE10 call dword ptr ds:[<&KERNEL32.HeapAlloc>>; ntdll.RtlAllocateHeap
103B2A0F 8B4C24 18 mov ecx,dword ptr ss:[esp+0x18]
103B2A13 8BF0 mov esi,eax
103B2A15 8D4424 14 lea eax,dword ptr ss:[esp+0x14]
103B2A19 50 push eax
103B2A1A 56 push esi
103B2A1B 6A 00 push 0x0
103B2A1D 6A 00 push 0x0
103B2A1F 68 088FFD10 push iTunes_1.10FD8F08 ; ASCII "SystemBiosVersion"
103B2A24 51 push ecx
103B2A25 FFD7 call edi
这里是应用层的第一次调用,在调用的时候第一次并没有分配相应的缓冲区来存放数据。这次调用的根本目的是为了获取注册表中对应的数据的大小。
Mac OS gdb 配置模版
目前对于各种unix和linux系统下的调试还没有非常直观的调试工具,虽然使用ida是可以进行调试的,但是这种调试却存在很多的问题。尤其是mac系统下的调试更是十分的但疼。
所以最常规的方法还是使用gdb进行调试,当然对于gdb在调试之前最好能够进行一些配置,如果通过良好的配置可以达到事半功倍的效果。但是还有一点需要注意的是mac系统下的gdb和linux系统下的gdb并不是完全一样的,在mac系统下如果使用gdb -app的方式启动的话这个配置文件并不会达到想要的效果,所以最好的方式是首先启动gdb然后采用exe app的方式来加载和启动调试。
ps: 还有另外的一个配置文件是针对ios设备的,如果需要的话猛击此处下载! (使用方法,下载后复制到用户目录下,修改文件名为.gdbinit然后重新启动gdb即可)
让Mac OS终端支持高亮显示
编辑用户当前目录下的.bash_profile文件即可,如果没有可以创建一个。在文件中输入如下的内容,保存之后重启即可。
export CLICOLOR=1
export LSCOLORS=gxfxaxdxcxegedabagacad
更详细的配置信息可以参考下面的内容:
iAppMaster 1.0 Nag Removed [Cracked by obaby]
This is the first time for me to crack a Mac os app,happly not to hard for me to crack this one.
i just moved the Nag Window ,so now u can just run the app without click the “shit” button
User Agent Simulator V0.1
Ubuntu 64bit 安装QQ
话说 国产的很多的东西没有提供64位的安装包,而网上大多数的办法是直接强行安装。首先通过sudo apt-get install ia32-libs安装ia32-libs然后再安装32位的QQ。其实没有必要那么复杂,直接下载一个gzip的压缩包解压用就可以了。下载之后可以通过下面的方法创建一个快捷方式:
sudo gedit /usr/share/applications/QQ.desktop
在文件中输入如下的内容即可:
[Desktop Entry]
Name=QQ
Comment=QQ For Linux
Exec=sh /home/obaby/soft/linuxqq/QQLnk
Icon=/home/obaby/soft/linuxqq/qq.png
Terminal=false
Type=Application
Categories=Application;Network
需要将所有的路径替换为你的程序目录。保存之后将会再应用程序的互联网目录下出现新建的QQ快捷方式。在编辑的时候最好能够一次成功,否则如果想要修改的话只能使用十六进制编辑器打开文件进行修改。
另外这时如果直接运行快捷方式可能会没有反映,需要编辑QQLnk脚本,修改为如下内容:
#!/bin/sh
export GDK_NATIVE_WINDOWS=true
cd /home/obaby/soft/linuxqq/; //修改为自己的程序目录
./qq
现在就可以正常的运行QQ了,其他的压缩软件都可以使用这样的方式创建快捷方式。
关于desktop entry的更多知识可以参考这个链接:http://hi.baidu.com/hunnon/blog/item/11d463114caf9ef6c2ce794c.html
IDA + GDBServer实现iPhone程序远程调试
IDA + GDBServer实现iPhone程序远程调试
By:obaby
在早期的IDA中包含了一个iphoneserver的程序,这个程序就是配合IDA实现远程调试的。但是在最新版的IDA中这个东西已经不复存在了,因而下载的破解版的IDA中没有那个文件并不是被删除掉了,而是本来就没有,*^_^*。所以一直以来调试iPhone上的二进制程序只能悲催的使用ssh+gdb进行调试,虽然调试器的功能还算可以,但是每次调试都需要设置显示,只能使用命令进行控制,因而用起来还是不是十分爽。
其实网上关于IDA实现ios设备远程调试的文章从网上也是可以找到的,但是说的都不是十分具体。本文主要是介绍下IDA实现远程iPhone程序调试的方法,当然这样调试还存在一些问题,如果大家有什么好的解决方案还请不吝赐教。
需要注意的是要想调试ios设备上的程序并不是简单的吧gdbserver拷贝到ios设备上行就可以了,此时如果使用gdbserver启动进程将得到类似如图1所示的提示信息:
图1