暗黑3融汇精通怎么做逆向可以做外挂吗

郁金香反汇编逆向与外挂(71) - qq的专栏 - CSDN博客
郁金香反汇编逆向与外挂(71)
冷却时间地址分析
冷却时间上限值
冷却时间计数 & 分为 倒计时和顺序计时两种
搜索方式:
搜索未知的初始化值
变动的数值
未变动的数值
汇编语句中会出现cmp指令。
先找出计时的存储地址,在找出存储cd上限值的地址,根据cd的上限值就可以控制cd时间。
1、找大嘴花作为分析对象。
2、找出变化的cd计时地址。
3、分析计时地址的访问代码
004B3FE3 - 2B 45 24 &- sub eax,[ebp+24]
004B2FEA - FF 47 24 &- inc [edi+24]
004B2FED - 8B 47 24 &- mov eax,[edi+24]
004B2FF7 - 89 5F 24 &- mov [edi+24],ebx
004B4CA5 - 89 45 24 &- mov [ebp+24],eax
eax里面存放的是计时值
5、点击第三条指令进入内存指令
004B2FED - 8B 47 24 & & & & & & & & & - mov eax,[edi+24]
004B2FF0 - 3B 47 28 & & & & & & & & & - cmp eax,[edi+28]
004B2FF3 - 7E 12 & & & & & & & & & & &- jle 004B3007
004B2FF5 - 8B C7 & & & & & & & & & & &- mov eax,edi
004B2FF7 - 89 5F 24 & & & & & & & & & - mov [edi+24],ebx
004B2FFA - 88 5F 49 & & & & & & & & & - mov [edi+49],bl
004B2FFD - E8 EE1C0000 & & & & & & & &- call 004B4CF0
004B3002 - E8 99FEFFFF & & & & & & & &- call 004B2EA0
004B3007 - 8B 47 3C & & & & & & & & & - mov eax,[edi+3C]
004B300A - 3B C3 & & & & & & & & & & &- cmp eax,ebx
004B300C - 0F8E
& & & & & & &- jng 004B30A4
6、分析内存指令
edi+28里面存的是上限值
edi+24里面存放的是计时值 & 750
edi+48 byte 0
edi+49 byte 1 cd计数开始
48 word 00 01 //表示 开始cd计时
48 word 01 00 //表示&未开始cd计时
将750改小即可缩短cd时间
7、如要消除所有植物的cd则该跳转指令为nop即可。
004B2FF3 - 00 00 & & & & & & & & & & nop nop
我的热门文章Pages: 1/5
主题 : 怎样对Cocoa程序编写逆向工程程序(外挂/补丁)
级别: 风云使者
可可豆: 53298 CB
威望: 54249 点
在线时间: 1642(时)
发自: Web Page
来源于&&分类
怎样对Cocoa程序编写逆向工程程序(外挂/补丁)&&&
本帖被 gagaga 执行加亮操作()
最近在研究iPhoto的插件的开发,顺便研究了一下逆向工程的技术,这里给出自己的心得以供参考~&&英文名应该叫做 Cocoa Reverse Engineering.不知道怎么翻译,参考babylon的翻译(来自Wikipedia)&&Reverse engineering&逆向工程&&Reverse engineering (RE) is the process of discovering the technological principles of a device or object or system through analysis of its structure, function and operation. It often involves taking something apart and analyzing its workings in detail, usually to try to make a new device or program that does the same thing without copying anything from the original.&逆向工程,通过对某种产品的结构、功能、运作进行分析、分解、研究后,制作出功能近似,但又不完全一样的产品过程。&&那Cocoa的反向工程是什么呢?就是对已有的Mach-O文件打补丁或者开发出framework中未公开的头文件。怎样进行呢,那我们开始吧~&翻译的一篇文档,加了额外的讲解。&1. 开始前的基础&你得先知道什么是Cocoa和Objective-C,当然不需要很专业的那种。另外还需要知道怎样在XCode中创建Cocoa Bundle的工程。&2. 选择你的目标&我们假设你想破解Terminal.app来改变文本颜色,但没有代码你该怎么半呢?那就需要工具来查看编译过的Mach-O的文件,里面包含所有的元数据噢。&3. 破解工具&nm是Unix平台的工具。它可以反编译出C函数的名字,托管C++代码和Objective-C函数。&strings也很普遍。它能反编译出给定库的所有字符串。Oftentimes &secret& preference keys(啥意思?哪个大虾翻一下) will reveal themselves as you look at the strings within a binary.&gdb (就不用说了阿,上英文)is well equipped to help you on your way. You can run any application from gdb and set breakpoints on Objective-C messages, just as you would with a C function. You can also do some noodling around to explore data structures at runtime. Very powerful, but not the easiest tool to use.& (这个也无需说了阿,可以生成库的头文件)is your friend. In fact, get to know it like family. class-dump loads a given chunk of Objective-C code and generates a fairly convincing header file of the classes contained within. This will give you an excellent snapshot of the application and you can learn a lot from the information contained within.& (Fscript是一个脚本语言,FScriptAnywhere可以把Fcript安装到程序里,这样你就可以选择一个控件并查看它的属性和方法了,英语翻译水平不行,大家辛苦下自己琢磨琢磨拉)是一个与Cocoa/Ojective-C紧密结合的类似Smalltalk的脚本语言。FScriptAnywhere是一个SIMBL插件,它可以把Fscipt载入到任何一个Cocoa程序中。一旦载入之后,你就可以浏览次程序中的运行时对象-检查某个对象的值或者调用某个类的方法等。很显然它是很强大的,但是它相当于破坏了程序的流程,就有可能破坏程序的数据。尤其要小心的是那些自动保存数据或者拥有复杂数据结构的程序,比如iPhoto/Mail,紧记保存程序的数据在开始破解之前。&(这个很重要噢,你开发的插件都是由它给Patch到程序里面的)是一个启动后载入标准bundle的一个framework。你只需编译一个标准Cooca Bundle(使用XCode默认工程),再添加一些特殊的键值(指定装载你的Bundle的目标程序,还有这个程序的最低和最高版本,文后会提到)&4. 开始破解之前的工作&这一步非常之重要,因为写破解程序总得有个目标对象吧,既破解某个或某几个对象的方法来添加我的动作,或者扩展方法。&这里我把破解分为两种&1)Framework&这个其实是最简单的,你的工程只要引用这个Framework,然后dump出这个framework的似有头文件并添加你感兴趣的头文件到工程里,然后之后使用或者集成扩展一下就可以了。&比如我之前写得控件重绘的教程,NSThemeFrame就是一个似有头文件,我继承之并重写了方法。&2)Cocoa Application&这个比较困难,当然dump出它的头文件是肯定的第一步,因为它是一个程序,你的插件是被载入到其中的,所以你不可以对其进行link的操作,所以framework破解的那套方法是不管用的。那我们就需要用到FcriptAnywhere了,将Fcript载入到目标程序中,选择你感兴趣的控件查看其方法或者属性。&其实这种破解的难点就是目标程序是一个黑盒,你只能自己反复测试实验才能拿到自己感兴趣的东西,就跟iPhone破解一样,你找到了iBoot的漏洞,那么就破解了,如果没找到,那么就破解不了。&找到“漏洞”后的破解方法还是有个难点的,这个后文再讲。&&总之在破解之前得找到可以利用的漏洞,否则就继续不下去拉~&5. 怎样对程序打补丁/破解&5.1)Posing&相信学过Objective-C的童鞋都应高听说过这个名词,虽然用到的机会很少,但真得很有用,不过在10.6 64-bit中被去掉了,所以在10.6 64-bit中用不了拉~10.5 & 10.6 32-bit中还是可以的。&Class posing 是Objective-C运行时态库中一个非常有用的技术。它允许你创建一个全功能的ClassA来伪装成ClassB,且ClassA是ClassB的自给且不能有自定义变量(不清楚的童鞋请补基础喽~)&[[B class] poseAsClass:[A class]];&这个不想深入的讲解,可以参考Apple的关于class posing或者 +[NSObject poseAsClass:(Class)_class]的文档。\&Posing有一下几个缺点&1. 只有在你Posing之后创建的对象才是你伪装的类,在这之前创建的对象还是原始的类。当然这个问题不大,不过还是最好知道这个当你试图找到你代码不工作的原因。&2. 你不能在子类中添加类变量(这个很明显的跟继承的思想是不符合的)。我不是100%的确定Apple这样做的原因,只能猜测应该是跟对象的内存大小相关吧,得保证所有这个类型的对象大小一致。不过幸运的是,我们可以通过一下方法来解决:&&
static NSMutableDictionary* s_fakeIvars =
+ (void) initialize
s_fakeIvars = [[NSMutableDictionary alloc] init];
- (id) init
self = [super init];
[s_fakeIvars setObject:[NSMutableDictionary dictionary] forKey:[NSNumber numberWithInt:(int)self]];
- (void) dealloc
[super dealloc];
// note: assumes 32-bit pointers
[s_fakeIvars removeObjectForKey:[NSNumber numberWithInt:(int)self]];
&3. 如果你posing的类是似有的,比如你自己dump出来的。如果类的大小改变了(比如说目标程序更新了,这个类多了几个成员变量,那么你的plugin里的类的大小就跟最新的不一致了),你的plugin就很有可能造成程序挂掉。(童鞋们应高明白的,类的大小是编译时确定的,所以类定义变了,那么运行时类的大小就变了,这也是posing子类中不允许添加变量的原因,添加方法是没关系的,因为方式IMP表而已)&4.如果这个程序安装了好几个破解插件,而这几个插件同时posing了一个class,那明显会挂的。&5.2)方法重定向(Method Swizzling)&原文作者也不记得第一次听到这个名词是什么时候了,但它确实是一个好的描述。简单来说,swizzing就是把某一个函数的实现跟另一个函数对换。另一种说法就是重命名。它其实并不是相它表面说得那样邪恶,一段示例代码足以说明一切了。&
* Renames the selector for a given method.
* Searches for a method with _oldSelector and reassigned _newSelector to that
* implementation.
* @return NO on an error and the methods were not swizzled
BOOL DTRenameInstanceSelector(Class _class, SEL _oldSelector, SEL _newSelector)
Method method =
// First, look for the methods
method = class_getInstanceMethod(_class, _oldSelector);
if (method == nil)
return NO;
method->method_name = _newS
return YES;
&这段代码就是重命名了一个类的实例方法,类方法并没有进行重命名。具体这段代码的介绍,使用和完善后文实战中给出。&6.实现并编译代码&找到了漏洞并掌握的了破解的方法,那么剩下的就是创建工程并实现编译了。这里采用SIMBL的解决方案(还有InputManager的方案,不过推荐SIMBL)。&具体创建的注意事项呢请参考SIMBL的网站或者作者原文第七段。这里我给出了一个工程模板,解压附件Cocoa SIMBL Bundle.zip,并讲解压出来的文件夹拷贝到&/Developer/Library/Xcode/Project\ Templates/Framework\ \&\ Library/Bundle(这是10.6上的位置,10.5类似吧应该?记不的了~好像有点区别的)。&重启XCode,在创建新功程Bundle中就能看到了。这个模板替你做好了开始写破解代码之前的所有操作,你只需填写目标程序的identifier就可以了。&具体使用方法后面实战帖子中给出。&7.注意事项&1. 首先要注意目标程序的更新,如果你dump出来的头文件不是最新,那么就有可能crash。所以最好设置好plugin所支持的最大和最小版本。&2. 符号的混淆。既你的类,扩展类,C方法会和已有的重名。所以在你的类之前添加你自己的前缀吧。&8.合理的plugin更新&原作者写得很有意思,大家自己看看理解下吧~牛人阿~&Use version checking to turn off your plugins in applications that just won't work - you don't want to cause other developers/Apple undue stress by breaking every application upgrade. Trust me - I learned the hard way. I'm sure there is a blacklist with my name on it near the Safari developers.&&&&呼,暂时告一段落。昨天同事请客吃饭喝酒,又唱了个通宵,早上回来睡了一个上午。起来忙了午饭家里收拾了一下赶紧来写,理论教程算是写完了,接下来要写一篇实战教程,就以SvnX为例。因为再好的理论都是在实战中被验证的。这个实战教程明天一定奉上,《以父之名》起誓~原本应该再接再厉一口气完成的,但老婆要去逛商场~要结婚拉,强迫被拉去买衣服~哈哈~[ 此帖被yoyokko在 17:12重新编辑 ]
(50 K) 下载次数:195
级别: 精灵王
可可豆: 12897 CB
威望: 12897 点
在线时间: 857(时)
发自: Web Page
你要写什么样的iPhoto Plugin?&&是写滤镜?还是加某个Feature(例如像Facebook这种的Plugin)?
级别: 风云使者
可可豆: 53298 CB
威望: 54249 点
在线时间: 1642(时)
发自: Web Page
引用 引用第1楼neogui于 19:19发表的&&:&你要写什么样的iPhoto Plugin?&&是写滤镜?还是加某个Feature(例如像Facebook这种的Plugin)?&&其实还没做呢,只是做了一个调查,不过最想做的还是滤镜啦~&iPhoto的滤镜插件其实就是标准得ImageUnit bundle啦,不过自己写的好像不能被load进去得,感觉在edit得时候iphoto载入得滤镜都是代码写死了得~&不清楚你说的facebook的plugin是干吗用的,是export插件吗?&根据我调查的结果,放在iPhoto.app/Contents/Plugins下的插件我们都是可以开发的,exportplugin会在导出的时候被调用,IAPlugin是图像切换效果插件,在播放幻灯片时被调用,iPrintFormatter插件不知道干吗的,能写,但是一直没找到触发调用的地方,剩下的就是滤镜了,不过不能被调用~&另外还可以做外挂插件,通过SIMBL载入到iPhoto的进程中去,这个可以做很多事情的,像很多商业的iPhoto的插件都是这种插件,我也能做,不过做滤镜插件还是不行&自己做的图片处理并不能跟iPhoto的图片处理流程结合在一起,所以就不能进行undo的操作, 而且只能对原始图像做处理~&&你做过?有啥思路没?
级别: 精灵王
可可豆: 12897 CB
威望: 12897 点
在线时间: 857(时)
发自: Web Page
我好奇,随便问问,呵呵~
级别: 风云使者
可可豆: 53298 CB
威望: 54249 点
在线时间: 1642(时)
发自: Web Page
顶阿,周末一定过来补全,都拖了半个月了~惭愧~
级别: 管理员
发帖: 7688
可可豆: 73313 CB
威望: 73439 点
在线时间: 5514(时)
发自: Web Page
otool应该也用得到
本帖最近评分记录: 共威望条评分记录
In all thy ways acknowledge Him, and He shall direct thy paths.
级别: 精灵王
可可豆: 15795 CB
威望: 15775 点
在线时间: 1657(时)
发自: Web Page
持续关注中。。。
级别: 新手上路
可可豆: 484 CB
威望: 473 点
在线时间: 271(时)
发自: Web Page
关注= =~
级别: 风云使者
可可豆: 53298 CB
威望: 54249 点
在线时间: 1642(时)
发自: Web Page
引用 引用第5楼gagaga于 22:19发表的&&:&otool应该也用得到&&class-dump我觉得其实就已经包括了otool了吧,而且otool反编译出来的代码可读性非常之不高,我没看过class-dump的代码,不过觉得应该是用otool做的,然后做了可读性代码的整理操作~
级别: 版主
发帖: 1766
可可豆: 112205 CB
威望: 112852 点
在线时间: 8537(时)
发自: Web Page
关注ls所有人。。。。。。
 Developer------------------------------------------------------------Η αγάπη ποτέ δεν αποτυγχάνει.愛是永不止息。Love never fails.
    --《圣经.新约》哥林多前书第13章
Pages: 1/5
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版从逆向转到 code 开发正确的姿势是什么, 有没有人一起讨论一下. - V2EX
从逆向转到 code 开发正确的姿势是什么, 有没有人一起讨论一下.
223 天前 &MBTimY
本人从接触电脑一直做的是逆向相关工作, 漏洞分析, 病毒分析, 各种 pc 端下面的逆向工程, 反调试, 静态反编译... 不过一直成绩平平, 也感觉似乎这样下去也找不到未来的方向, 难道要一直守着一个 OD WINDBG IDA 盯着屏幕一辈子的调试下去, 突然感觉到未来有点堪忧, 想转做开发 自己编写一些东西 感觉那样似乎更有乐趣一点. 不知道谁有相同的经历不, 可否给点建议..
一直以来编码的经验 都是基于一些工具类的 不大的程序 主要是辅助逆向的一些工作, 没有编写过什么正儿八经的项目..
1347 次点击所在节点 &
ryd994222 天前学好算法,做底层开发?
MBTimY222 天前@
- - 我算法比较差, 不过最近在恶补, 基本上每周看一些常见的算法 让自己的大脑里面留有印象,然后再补充一些基础的数学知识, 但是我觉得以我的数学底子, 最多能做到的也就是可以在一定的环境下能想到哪种现有的算法可用,我觉得能达到这个水平应该是我的上限了, 或者说 短期的上限了. 做底层开发的意思是, 驱动?
ryd994222 天前@ 对,毕竟你现在的经验放到 IT 肯定不合适对吧
你要转身也不是不行
MBTimY222 天前@
不知道你这里指的 IT 是什么意思,
最近准备写一些 web 相关的小工具类的东练手,爬虫类, 数据分析类, 不知道有没有什么前景.. 现在只是觉得有趣而已
ryd994222 天前@ 我指的就是 Web 这类………
你既然有底层相关的经验,不要浪费比较好
pyufftj222 天前以前玩过 CTF , 做的是 web 方向,接触过一些逆向,不过感觉是被 ctf 玩。。现在放弃了,安心做开发
kivusec222 天前搞逆向 c/c++功底一定很好喽,可以转 c++啊,但是话说我感觉还是安全有前景啊老哥
menc222 天前不太理解,做逆向也可以不会写代码的?
MBTimY222 天前@ 可能我理解的&写代码&比较复杂一点, 我认为能称得上会写代码 应该有独立的构架能力, 良好的算法基础, 对于业务的需求分析有着很好的能将其转换成数学模型 程序 模型的能力, 以及对于自己开发的工程 或者 项目所需要的语言 模块 库 框架 等 都有着很好的掌握, 可以写出高效的代码 完成 整个功能 或者项目, 所以我认为我不太会写代码. 我不知道我的理解跟你对写代码的理解 是否一致, 如果一致的话
那你应该很好理解我 为什么认为我根本就不会写代码了
MBTimY222 天前@ 我有一个前同事现在就在阿里做安全, 我可能是性格问题吧, 我老是想自己做一些产品 , 但是安全这种东西 以我的工作经验理解, 我认为基本上 跟 政府项目相关,
或者 一些大型公司才有这方面的需求, 想要自己做一些东西 除非有不错的背景
或者 站在安全的反面 也许才能做到自己去做一些东西的期望.
MBTimY222 天前@ CTF 我查了一下 好像是一个比赛?
MBTimY222 天前@ 恩, 这个我也是纠结了很久, 可能性格的问题吧, 想尝试一下其他的方面的东西, 自己也是很纠结呀.....
Karblue221 天前不用纠结了。 逆向到深处就是了解系统底层。了解系统底层就必须看 C/C++ 代码。看多了之后写代码的功力已经很吊了。。 你说的那种独立架构能力的实际上应该称之为架构师。虽然这个愿景是好的。可是一个好的架构师不是说转行就可以转出来的。还不如继续深入逆向的工作。做逆向方面的大牛。。。
MBTimY221 天前@ 谢谢鼓励, 我今年准备试试 - - 做做数据相关的事情, 看看自己行不行, 发出来这个问题 也只是需要一些鼓励吧, 谢谢 .... 毕竟有一个骚动的心呀, 我觉得从数据中挖掘出来一些东西 很有成就感的感觉.
gamegrd221 天前挖个 0day 够花一辈子了
MBTimY221 天前@ 也要看什么质量的 0DAY, 不是所有的 0DAY 都叫 MS08067.
而且这也看人的性格, 我最近突然想做回一个正常人呀, 不想一辈子做一些 都没办法跟身边普通的朋友 聊天的事,
感觉这样下去会孤独之死(可能有点过于消极).
qfdk221 天前@ 以前也是玩这些的 ms06-14 也是个好东西 不过逆着能看懂 正常应该没啥问题 不行就单片机开发 我现在做大数据搜索相关的 换个脑子 祝好?(?)?
pyufftj221 天前@ 恩,主要分为 web 和二进制,逆向是一个很重要的部分
gamegrd221 天前@ 还有条路,做外挂
phrack221 天前做逆向很有前途啊,看你经验好像很丰富的样子也就是做了几年了。
为什么没有转移动端逆向。
不过就算 pc 端逆向我也看到很多人在招人的啊。
第 1 页 / 共 2 页
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到
上打开本讨论主题的完整版本。
是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
is a community of developers, designers and creative people.逆向、外挂、过驱动、加壳、脱壳、加解密、木马、远控等技术视频教程
2015年 10月15日所属栏目:播放次数:易辅客栈大漠初中级从零学辅助系列教程分为易语言初级游戏辅助开发视频教程、易语言中级游戏辅助开发视频教程。
第1.1课初识插件及模块的调用
第1.2课大漠识字及...
2015年 10月15日所属栏目:播放次数:易辅客栈从零学辅助系列教程主讲大兵是一个易语言编程与易语言开发外挂、游戏辅助教程。
1.0认识大兵插件
1.3.如何使用大兵内的函数
1.4.如何调用VIP函数
1.5.理解什么是...
2015年 10月14日所属栏目:播放次数:夜猫论坛易语言HOOK视频教程(夜猫论坛中学HOOK培训系列教材)易语言HOOK DLL注入到其它进程的方法。
1.动态链接库的编写与调用
2.dll的注入方法
3.hook系列之_hook讲解
2015年 10月14日所属栏目:播放次数:夜猫论坛易语言开发辅助编程视频教程(夜猫论坛辅助编程小学VIP培训班)讲解使用易语言开发游戏辅助程序。
B01、小学第一课
B02、角色信息
B03、OD获取角色信息
B04、易语言编...
2015年 10月12日所属栏目:播放次数:天道酬勤VC++游戏辅助开发教程(第二套)
1.1.一个最简单的外挂(EXE版本)
1.2.一个最简单的外挂(EXE版本)
1.Hook发包函数
10.VC斗地主辅助
11.VC斗地主辅助
12.VC飞机躲子弹...
2015年 10月10日所属栏目:播放次数:天道酬勤VC++游戏辅助开发教程(第一套),VC开发外挂的好教程。
1.CE与OD寻找人物相关信息
10.根据血量找怪物对象信息
11.通过遍历工具找到怪物信息
12.根据公式推导周围怪物...
2015年 10月08日所属栏目:播放次数:天道酬勤2014版视频教程(DXF、剑网3、剑灵、武林)
1.DXF找人物对象与解密函数
10.DXF通过类型阵营过滤无用对象
11.DXF场景信息过滤与怪物血量编程
12.DXF编程读取副本NPC列...
2015年 10月07日所属栏目:播放次数:天道酬勤DNF辅助系列培训教程
DNF 1.外挂制作第一课
DNF 2.发包CALL的寻找方法
DNF 3.OD,CE找到秒杀怪物的CALL附近
DNF 4.秒杀怪物的方法
DNF 5.无敌功能的写法
DNF 6.修改...
2015年 10月06日所属栏目:播放次数:天道酬勤Delphi游戏商业辅助开发系列教程
1.Delphi打造美女找茬外挂
2.Delphi打造美女找茬外挂
3.Delphi打造美女找茬外挂
4.Delphi打造美女找茬外挂
5.Delphi商业外挂登陆...
2015年 10月06日所属栏目:播放次数:天都吧VIP封包脱机视频教程,网络游戏封包解包教程。
01.游戏外挂的分类和区别以及利弊
02.封包工具的使用
03.游戏喊话包的分析
04.游戏封包加密算法分析
05.纯脱机登录游戏...3091被浏览1980807分享邀请回答1K154 条评论分享收藏感谢收起

我要回帖

更多关于 精通ps能做什么工作 的文章

 

随机推荐