制造300补丁使用的adadd the sea c4d插件件是什么?

pdf 如何安装add on插件
pdf 如何安装add on插件
在 UpdateStar: pdf 如何安装add on插件
硝基 PDF 專業是第一個全功能的 PDF 創建和編輯產品。專業應用程式可以讓你完全控制 PDF 文檔,包括創作、 評論、 填寫申請表和創作、 數位簽章、 文本編輯、 一鍵式創作從 Microsoft Office 和更多。硝基 PDF 專業是第一次真正意義的替代 Adobe Acrobat 的人想要使用 pdf 格式檔。創建。創建 PDF 文檔直接從內熟悉的應用程式,包括一次按一下創作從微軟辦公室內。直接從 Windows 剪貼簿中的內容創建 PDF 文檔。
Adobe 閱讀器軟體是電子文檔共用的全球標準。它是唯一的 PDF 檔檢視器,可以打開並與所有 PDF 文檔進行交互。使用 Adobe Reader 進行查看、 搜索、 數位簽章、 驗證、 列印,並在 Adobe PDF 檔上進行協作。
XChange 檢視器是一個 pdf 檢視器應用程式。那些希望查看其 Windows PC 上的 PDF 檔現在有一個選擇當它來到查看 PDF 檔-XChange 檢視器較小,速度更快和更多的功能豐富,比 Adobe 閱讀器具有直到現在被讀者選擇 PDF 檔-我們認為這是關於改變 !免費的 PDF XChange 瀏覽器提供了所有功能的您期望的所有 PDF 檔案格式的支援等。
允許您查看、 搜索和列印現有的 PDF 文檔,您的電腦的生活。硒還允許您創建和爭取試用期的 6 個月或 50 頁 (無論哪個先發生) 從任何 PC 應用程式允許列印的 PDF 頁面。頁面創建審判期間屆滿後,將列印帶有永久浮水印。
PDFArchitect 是一種工具可以輕鬆地修改您的 PDF 檔 — — 也就是說,您可以合併兩個檔、 刪除頁面或旋轉它們。
硝基 PDF 閱讀器是一個小而快 PDF 編輯器,將滿足 ordinarty PC 使用每一個需要使用 PDF 檔在日常基礎上的人。硝基 PDF 閱讀器具有直觀的介面和功能強大的選項,沒有講解,最有用的免費的 PDF 編輯器,您可以找到之一。在另外的查看 PDF 檔,您立即可以訪問的綜合陣列的編輯工具,使您能夠快速獲取你的工作做。可調整大小的文檔,可以提取文本和圖像資料,和成品立即可以加工成全新的 PDF 檔並保存在您的硬碟上。
PDF 閱讀器是一個免費的程式,可以查看、 修改和列印 pdf 檔。這是非常小,只有大約 2 mb 的磁片下載。你可以打開、 查看、 縮放和列印 PDF 檔。您還可以修改 pdf 檔 (但你不能拯救他們的免費版)。您可以添加、 更改和刪除的文字和圖片和把它列印出來。
蘇打 PDF 包含您期望從 PDF 軟體和更多-在一個便於使用的包的所有特徵。一些蘇打水 PDF 功能包括:是直觀,介面安裝後就開始工作!使用專業的範本與創建表單。從 300 + 格式創建的 PDF。加密 PDF 檔中 256bits & 管理數位簽章。與注釋工具輕鬆地協作。100%相容任何 PDF 檔。在自訂選項卡中最保存所使用的所有函數。從 PDF 到 Word 在市場上的最快和最準確轉換之一。通過一次按一下 Microsoft 辦公室內創建 PDF …
Microsoft Office 專業加 2007年將説明您和您的組織工作更高效、 更有效地與一組新的功能強大的工具,用於創建、 管理、 分析和共用資訊。Microsoft Office Fluent 使用者介面使辦公室專業加 2007年便於使用,和新的圖形功能使創建美觀、 高影響力的文件管理單元。辦公室專業加上 2007年 — — 都是説明你更快地交付更好的結果。
pdf 如何安装add on插件 的搜尋結果
描述包含: pdf 如何安装add on插件
Adobe 閱讀器軟體是電子文檔共用的全球標準。它是唯一的 PDF 檔檢視器,可以打開並與所有 PDF 文檔進行交互。使用 Adobe Reader 進行查看、 搜索、 數位簽章、 驗證、 列印,並在 Adobe PDF 檔上進行協作。
Adobe Acrobat 閱讀器直流是用於查看、 列印和注釋的 Pdf 的自由、 受信任的標準。但現在,它連接到 Adobe 文檔雲 — — 所以它就更容易過工作之余,與 Pdf 電腦和行動裝置上。
福昕閱讀器是一個小型、 快速、 閃電和功能豐富 PDF 檢視器,允許您打開、 查看、 簽名和列印任何 PDF 檔。福昕閱讀器是只有高卷 PDF 閱讀器提供一個完整的 PDF 創建解決方案,提供 PDF 創造到每個桌面的權力。福昕閱讀器配全面防護的安全性漏洞,保證您的系統和公司的安全。
Pdf Creator 是一個免費的工具,從幾乎任何 Windows 應用程式創建的 PDF 檔。主要功能:-從任何能夠列印的程式創建的 Pdf安全: 加密 Pdf,並使他們免受被打開、 列印的等。-發送生成的檔通過電子郵件-創建 pdf 檔不僅僅是: PNG、 JPG、 TIFF、 BMP、 PCX、 PS、 EPS-自動儲存檔的資料夾和檔案名基於標記喜歡使用者名、 電腦名稱稱、 日期、 時間等。-將多個檔合併到一個 …
是一套的線上服務 — — 檔共用和存儲、 PDF 轉換器、 線上文字處理器和 web 會議 — — 您可以使用來創建和共用文件、 進行即時、 通信和簡化與其他人的工作
部分新直流 (文檔雲) 系列產品,新的 Adobe Acrobat 閱讀器 DC 將添加到十一這個最著名的免費的 PDF 工具 (Adobe Reader) 的最新版本的功能新的介面和一套的廣告功能僅適用于新的 Acrobat Pro 直流。這個免費的 PDF 檢視器和注釋器提供相同水準的品質,但與所有新的外觀和感覺。有時顯然旨在卻大步向前時相比,最新的 Adobe 閱讀器溪新基於訂閱的 Acrobat Pro 的 DC,Adobe Acrobat 閱讀器直流透過商店櫥窗。
ABBYY FineReader 專業版是為那些要求最高水準的識別精確性和格式保留理想光學字元辨識 (OCR) 軟體。一個優秀的節省時間解決方案,FineReader 允許您轉換和編輯各種紙張和電子檔,包括雜誌、 報紙、 書籍、 傳真、 副本和 PDF 檔。ABBYY FineReader 提供了更高的精度轉換幾乎任何類型的檔,包括各種 office 文檔、 表格和試算表、 雜誌上的文章、 書籍、 和甚至傳真和數碼照片。以其新的 …
硝基 PDF 專業是第一個全功能的 PDF 創建和編輯產品。專業應用程式可以讓你完全控制 PDF 文檔,包括創作、 評論、 填寫申請表和創作、 數位簽章、 文本編輯、 一鍵式創作從 Microsoft Office 和更多。硝基 PDF 專業是第一次真正意義的替代 Adobe Acrobat 的人想要使用 pdf 格式檔。創建。創建 PDF 文檔直接從內熟悉的應用程式,包括一次按一下創作從微軟辦公室內。直接從 Windows 剪貼簿中的內容創建 PDF 文檔。
福昕閱讀器是一個免費的 PDF 文檔檢視器,具有令人難以置信的小大小、 風快速啟動速度和豐富的功能集。福昕閱讀器支援 Windows 2000/XP/2003年/Vista/7。其核心功能是與 PDF 標準 1.7 相容。現在與福昕閱讀器,你不必忍受這種痛苦更多。以下是一個令人信服的優勢的福昕閱讀器的清單:令人難以置信小: 福昕閱讀器下載大小的 Acrobat 閱讀器 20 M …
XChange 檢視器是一個 pdf 檢視器應用程式。那些希望查看其 Windows PC 上的 PDF 檔現在有一個選擇當它來到查看 PDF 檔-XChange 檢視器較小,速度更快和更多的功能豐富,比 Adobe 閱讀器具有直到現在被讀者選擇 PDF 檔-我們認為這是關於改變 !免費的 PDF XChange 瀏覽器提供了所有功能的您期望的所有 PDF 檔案格式的支援等。
其他標題包含: pdf 如何安装add on插件
硝基 PDF 專業是第一個全功能的 PDF 創建和編輯產品。專業應用程式可以讓你完全控制 PDF 文檔,包括創作、 評論、 填寫申請表和創作、 數位簽章、 文本編輯、 一鍵式創作從 Microsoft Office 和更多。硝基 PDF 專業是第一次真正意義的替代 Adobe Acrobat 的人想要使用 pdf 格式檔。創建。創建 PDF 文檔直接從內熟悉的應用程式,包括一次按一下創作從微軟辦公室內。直接從 Windows 剪貼簿中的內容創建 PDF 文檔。
PDFArchitect 是一種工具可以輕鬆地修改您的 PDF 檔 — — 也就是說,您可以合併兩個檔、 刪除頁面或旋轉它們。
XChange 檢視器是一個 pdf 檢視器應用程式。那些希望查看其 Windows PC 上的 PDF 檔現在有一個選擇當它來到查看 PDF 檔-XChange 檢視器較小,速度更快和更多的功能豐富,比 Adobe 閱讀器具有直到現在被讀者選擇 PDF 檔-我們認為這是關於改變 !免費的 PDF XChange 瀏覽器提供了所有功能的您期望的所有 PDF 檔案格式的支援等。
允許您查看、 搜索和列印現有的 PDF 文檔,您的電腦的生活。硒還允許您創建和爭取試用期的 6 個月或 50 頁 (無論哪個先發生) 從任何 PC 應用程式允許列印的 PDF 頁面。頁面創建審判期間屆滿後,將列印帶有永久浮水印。后使用快捷导航没有帐号?
合作站点账号登陆
只需一步,快速开始
请完成以下验证码
查看: 440398|回复: 204
[插件补丁]300英雄盒子patch3第三代补丁官方下载专贴。
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
patch3补丁下载补丁版本:patch3
安装方法:盒子插件【补丁替换】【补丁安装】
下载地址:
300英雄盒子下载:
插件【补丁替换教程】首先 你需要先下载patch3的补丁 随便放在哪个目录的文件夹里,最好放在一起 因为好找
然后打开盒子,点击下面的工具插件,打开皮肤替换
点击右上角的导入皮肤,把所有下载的皮肤补丁导入
有些同学上一步做完之后就打开游戏 发现补丁没有打进去,其实还缺少一步
我们在导入补丁之后 需要双击皮肤替换工具中 你要打补丁的那个人的头像 然后再双击确认 这样再进入游戏就有了
还有 有时候开启后都会说无限视距开启失败 重新开一遍又好了
插件:【游戏修改】内置补丁 下载。
界面补丁下载:
patch3补丁制作权获取
目前市面上只有 pach,patch2 的补丁,而且补丁作者的权益经常受损,补丁被用于非法用途等。
因于这些原因,开发出了 patch3 补丁,patch3 添加了 补丁作者 作者签名 预览图,
patch和patch2可以转化为patch3。但 patch3不能转化为 patch 或 patch2
为了保护皮肤补丁作者的权益,,需详细阅读以下条款,阅读完即可联系小涛并审核。
---------------------基本条款---------------------
<font color="#.您明确了解并接受:
&1&pach3格式补丁都需要填写认证信息,补丁作者 作者签名 对应英雄 预览图。
&2&pach3格式补丁生成器只可以在盒子插件中使用,并需要认证才可以使用。为了杜绝非法补丁盈利,也为了认证补丁作者。
&4-1&一经发现作者用补丁非法盈利,撤销作者paych3补丁发布权。(如果订做补丁请参考 4-2)
&4-2&定做补丁 如果购买者并没有受到作者胁迫而是自身完全同意下支付一点代价定做补丁,作者可以接受订做补丁并获得购买者的补偿。(如果贩卖补丁请参考 4-3)
&4-3&违规补丁交易方式。非自己制作的补丁且贩卖补丁,补丁加密码,补丁权限制。皆属于违规补丁交易。
&5&同意以上条款后,联系小涛,之后经小涛验证并判定是否合作。
&6&冰尘软件开发团队保留最终解释权。
加好友备注:patch3补丁制作
冰尘论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者
与享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、管理员和版主有权不事先通知发贴者而删除本文
{:5_150:}{:5_150:}
{:7_184:}{:7_184:}
{:7_174:}{:7_174:}
{:7_174:}顶
{:7_176:}{:7_176:}基本不用盒子的路过……
{:7_176:}赞赞赞赞赞
有了................
{:7_176:}{:7_176:}
{:7_182:}{:7_182:}
Copyright &copy 2017 冰尘网
Powered by300英雄外团补丁安装器的补丁生成是什么意思,怎么弄
300英雄外团补丁安装器的补丁生成是什么意思,怎么弄 游戏 &|&提问者:网友&|&提问时间: 37分钟前难道将补丁安装到300?
最完美的答案:是补丁制作的工具,就像文字描述的,是用来生成补丁的。打开这个包里的《300英雄》资源查看器V1.15.2 然后点击右边的管理date 在弹出的对话框里找到你安装300英雄的目录 打开目录下的Data.jmp然后资源查看器会打开Data.jmp 就可以看见这个游戏里原本的文件了 你现在可以看看列表里的文件 也可以导出编辑 但是新手我不推荐这样 点击右边的全部解压 ?在弹出的对话框中选择你要存放解压出的文件的目录解压出来有3个文件夹 ?第一个 date 第二个excel 第三个ui打开date文件夹 ?date用于存放贴图模型音效之类的文件 接下来我会介绍date下的文件夹包含的内容 ? ? ? ? ?date文件夹 包含了一些子文件夹 第一个介绍audio 这个文件夹用于存放游戏的音效【包括人物语音 背景音乐之类的】 音效格式为.ogg audio目录下有好几个文件夹都是存放ogg音频的 文件夹名字很容看懂的 看不懂你可以自己试听这些ogg文件来分辨这些是是什么音效 如果你要修改音效 可以用诸如格式工厂之类的软件把你喜欢的音效改为ogg格式 然后重命名为audio目录下你要修改的音效文件 注意 补丁的本质就是替换游戏里的文件 所以你把喜欢的音效转为ogg后一定要重命名为你想要替换的音效文件的名字 替换之后进入游戏就能听到了 怎么替换和生成补丁后面说 ? ? ? ? 继续介绍date目录下的文件 ?character这个文件夹用于存放人物的模型和贴图 ?子目录roleaction下是英雄的模型和贴图 模型为.x结尾的文件 皮肤为.dds结尾的文件 .x模型经过加密 我们没有办法来编辑他 但是可以进行替换 比如我复制一个梦梦的模型文件重命名为炮姐的模型文件的名字(就是把149.x命名为096.x 安装了我发的dds预览插件就能直接预览dds图片了 看了贴图认出英雄应该不难吧)然后替换原来的炮姐模型文件 进游戏后炮姐就变成梦梦了 替换的方法后面说 dds文件可以通过Photoshop也就是PS来编辑 使用PS编辑需要dds插件 百度就有 使用方法也有 dds就是一张图片 如果你会使用PS就可以修改了 这个比较考验美术功底 ps水平 还是那句话补丁的本质就是替换游戏里的文件 把你修改好的dds文件导入替换就可以了 导入替换之后说 ? ? ?继续介绍date目录下的文件 effect这个文件夹用于存放技能特效的配置文件 类型为.ini ?effect下有common和skill两个文件夹 common用于存放一些公用特效比如召唤师技能 skill用于存放英雄的技能特效 skill目录下的文件夹都是拼音名称 应该没问题的 随便打开一个英雄的文件夹 里面是他每个技能的文件夹 都是拼音名字 打开一个技能的文件夹 里面可能包含以下几种文件夹 第一个fire ?这个文件夹里的包含ini文件是释放特效 可以理解为技能开启时时播放的特效第二个hit 这个下的ini记录的是碰撞时播放的特效第三个keep 这个下的ini是一种持续性的特效第四个trace 这个下的特效是表示路径特效 就是技能的弹道 运动轨迹之类的特效这些ini文件是记录执行特效的配置文件 如果你想要修改特效的话是没有办法的 特效补丁只是替换了游戏里的特效 举个例子 我要把梦梦的e技能藤蔓改成术士娃的烧尽 只要找到术士娃烧尽的trace特效重命名为梦梦的e ?再替换掉梦梦原来的e就可了(注意是替换ini文件) fire hit keep trace是不同种类的特效 但是可以随意替换 因为特效只是一种动画 没换好只是看起来很奇怪 不会对游戏产生实质影响 怎么替换后面一起说 因为都一样 ? 继续介绍date文件夹 ?magic这个文件夹下子文件夹和effect相同 也是common skill 打开这两个 里面差不多所有文件夹都和上面的一样 当然作用也一样 effect里的是特效配置文件ini 而skill里的是.x结尾的特效文件 也就是说effect的ini是在负责调用skill里的.x特效文件 .x是本质上的特效而ini是在引导特效执行 ?和上面相同 我们也可以替换这些.x文件来修改特效 都差不多 不同的就是ini可以直接打开 是一些文本 记录了一些技能特效的播放参数比如时间大小 你可以修改它让技能产生变化 这个有点复杂 这里先不说 ? ? ? date下的主要文件夹介绍完了 其他的你自己看看就知道里面是什么了 ? ? ? 下面是介绍ui这个文件夹下的内容 ? ? ? ? ?先介绍的是common这个文件夹 common这个文件夹下是一些dds格式的图片 看看就知道是什么图片了 就是大厅界面之类的的图片 制作主题补丁就是把这几张图片替换成你想要的图片 注意替换界面大厅不要把本来的ui 也就是那些边框按钮弄没了 会用ps的话可以修改边框按钮之类的 换图片这些需要至少一丁点ps基础 界面主题其实很简单的 几分钟就会了注意要是dds格式的用ps可以转换 还有切记名字要相同 替换和补丁后面说 ? ? ? ? 继续介绍ui文件夹 接下来是head这个文件夹 看名字就明白了吧 是头像的存放目录 这个目录下有monster NPC role summoner这四个文件夹 看名字就懂的吧 分别是野怪头像 npc头像 ?英雄头像玩家头像 ? ?制作补丁的话也是找张图用ps修改下大小格式来替换了 还是注意名字要相同哦 还有要是dds格式 技能图标大小为64x64像素 英雄图标为128x128像素大小 不知道的打开图片的详细属性里面有图片的大小规格 dds格式转化可以用ps ?替换和补丁后面说 ? ? ? ? ?ui下最后还要说的就是icon 里面有技能和成就的图标 打开看看就知道了 再说一遍我给的dds预览插件装了就能预览
? ? ? ? ? 没有介绍的文件夹都是些用不到或者很简单的 没事自己可以翻翻看 ? ? ? ? ? ?文件介绍完了
? ? ? ? ? ?下面是文件替换和补丁生成了 ? ? ? ? ? ? ? 替换(所有的替换都一样) ? ? ? ? ? ? ?首先你要有用于替换的文件 总结一下 音效要转换为ogg格式 ?模型直接用游戏里的 贴图为dds格式 ?图片也是dds 记得别搞错分辨率 特效为ini 或者.x ? ? ? ? ? ? ? ?用于替换的文件准备好了 ?然后去文件夹就(是那三个主要的) 找到你想要替换的文件 总结一下 音效audio 技能effect或者magic 模型贴图character 图标在ui里 ?找到后就是改名字罗 复制想要替换的文件的名字 记得扩展名最好也复制一下 怕弄错 ?然后把准备用于替换的文件重命名为这个你在复制的 名字扩展名都要一样哦 然后打开 包里的《300英雄》资源查看器V1.15.2 点击右边的载入data ?文件载入完成后 在最下面那行查找文件 粘贴好名字 查找 然后结果就出来了 右键点击找到的文件选择替换文件 在弹出的对话框里选择用于替换的文件就好了 确定 替换成功 就可以运行游戏查看效果了 ? ? ? ? ? ? ?补丁生成 ? ? ? ? ? ? ? 打开3 00英雄补丁生成与安装V0.23 把用于替换的文件拖到界面里来 ? ? ? ? ? ? ? ?文件就在表格中显示了 ?双击文件 弹出对话框 欲替换的文件名 ?在这里输入欲替换的文件名 ?注意输入的文件名要包含路径 比如我要替换100.dds 这里就先去《300英雄》资源查看器V1.15.2里搜索100.dds 右击结果 选择复制文件名 复制到的是..\data\character\roleaction\100.dds 用这个带路径的名字才能制作补丁 确定 生成补丁 补丁制作完成 替换多个文件的补丁多拖几个进来就可以了 一样的 ? ? ? ? ? ? ? 总结一下几类补丁 ? ? ? ? ? ? ? ? 皮肤类 这类补丁需要替换.x .dds文件 如果是官方皮肤 只需要替换.x就可以了 .x会自动选择dds ?举个例子我想用天津风 天津风模型是152_skin1.x 岛风是152.x 我只需要把152_skin1.x改为152.x 再替换原来的152.x就可以了 如果自己做皮肤 就要用ps重画贴图 再替换 ?语音图标分别为ogg 和dds 特效为ini或x ?
? ? ? ? ? ? ? ?主题界面类 ?替换dds ? ? ? ? ? ? ? ? ?音效类 ? 替换ogg ?全部说完了 ? 其实就是替换文件而已 ?
?我最初想制作补丁的时候几乎没人有帮我 ?一个人费了很多力气 ?希望能对你有帮助 另外这个不会被封号afc2add补丁怎么安装 afc2add服务补丁安装详细图文教程
作者:佚名
字体:[ ] 来源:互联网 时间:07-01 08:43:57
 ios7完美越狱工具evasi0n7现已更新至v1.0.1版本,不过,依然不少童鞋们发现越狱后连接电脑PP助手依然无法识别设备的已越狱状态。为此,PP助手的肥x技术大神为大家制作了一份详细的afc2add服务补丁安装教程,希望能帮助到你顺利越狱
1.越狱完成第一次进入cydia,等待Cydia准备文件系统加载完成。
(完成设备会自动注销一次,请重新再进Cydia)&
2.选择&用户&模式 --等待Cydia页面顶端的数据加载完成(如果没有等待加载完成就进行操作,很可能在安装插件时提示缺少依赖包或添加源时提示各种错误)&&3.检查变更(如果变更处显示空白,请点击刷新等完成,如果有更新项目请及时更新)&&4. 进入管理--软件源--编辑/添加--&&--添加源&&
点击右上角编辑/添加--&&--添加源
添加成功后会自动更新源
点击界面右下角搜索-- 搜索栏输入afc2add--并选中对应插件【用户可以根据是IOS6或者IOS7自行选择版本】
点击右上角安装--确认
确认后会自动下载--下载完成后点击重启设备
重启设备后会看到已安装插件处出现绿色钩钩
常见问题1.加载成功显示黄色与红色错误提示.因为Cydia服务器繁忙导致源地址的插件列表无法更新的错误提示。可以尝试更换网络或者换一个时间段再进行更新。
大家感兴趣的内容
12345678910
最近更新的内容OD 写补丁代码插件 SkyPatch 的 bug 修正
标 题:OD 写补丁代码插件 SkyPatch 的 bug 修正
作 者:CCDebuger
时 间:<font color="#09-05-02 14:25 链 接:
【文章标题】:&OD&写补丁代码插件&SkyPatch&的&bug&修正
【文章作者】:&CCDebuger
【软件名称】:&SkyPatch&1.1
【下载地址】:&自己搜索下载
【作者声明】:&只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
&&SkyPatch&插件用来在&OD&中写补丁代码是比较方便的。不过这个插件有个&bug,就是当写入的字串放在&VA&地址&00A00000&以后,则无法构建。如果构建的话,则会出现类似这样的错误:
&&错误的命令位于行:&18&PUSH&a17250&Unknown&identifier
&&构建失败
&&补丁代码类似于这样:
&&@0x00A17250:
&&$str1&&xxxxxx&
&&以下代码省略...
&&PUSH&$str1
&&这里要在&OD&中正常汇编的话,转换后的指令应该是:
&&PUSH&0a17250
&&这样才能正常编译。可见&SkyPatch&插件在把地址的&DWORD&值转换为字串时,把前面的&0&丢掉了。如果地址是低于&00A00000&的值,这样没什么问题,但如果转换的字串地址大于&00A00000,则无法编译了。现在试着修复这个错误。用&IDA&分析一下&SkyPatch&插件,根据出错字串“错误的命令位于行”很容易发现有三个地方调用。两个地方都是调用&OD&的汇编功能的,不是我们要找的地方。那就只有这个地方:
&&.text:1000F1DF&loc_1000F1DF:&&&&&&&&&&&&&&&&&&&&&&&&&&&;&CODE&XREF:&_Convert_Param_to_Str+EFj
&&.text:1000F1DF&&&&&&&&&&&&&&&&&mov&&&&&edx,&[eax+0Ch]
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&ecx,&(offset&LibFileName+124h)
&&.text:&&&&&&&&&&&&&&&&&and&&&&&dh,&0F9h
&&.text:1000F1EA&&&&&&&&&&&&&&&&&or&&&&&&dh,&8
&&.text:1000F1ED&&&&&&&&&&&&&&&&&mov&&&&&[eax+0Ch],&edx
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&eax,&[esp+3Ch+arg_0]
&&.text:&&&&&&&&&&&&&&&&&push&&&&eax&&&&&&&&&&&&&;&这里就是地址的DWORD值
&&.text:&&&&&&&&&&&&&&&&&call&&&&ds:std::basic_ostream&char,std::char_traits&char&&::operator&&(uint)
&&.text:1000F1FB&&&&&&&&&&&&&&&&&lea&&&&&ecx,&[esp+3Ch+var_1C]
&&.text:1000F1FF&&&&&&&&&&&&&&&&&push&&&&ecx
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&ecx,&(offset&LibFileName+11Ch)
&&.text:&&&&&&&&&&&&&&&&&call&&&&ds:std::basic_stringstream&char,std::char_traits&char&,std::allocator&char&&::str(void)
&&.text:1000F20B&&&&&&&&&&&&&&&&&mov&&&&&esi,&eax
&&.text:1000F20D&&&&&&&&&&&&&&&&&mov&&&&&edx,&ds:uint&const&std::basic_string&char,std::char_traits&char&,std::allocator&char&&::npos
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&ecx,&[esi+8]
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&[esp+3Ch+var_4],&1
&&.text:1000F21E&&&&&&&&&&&&&&&&&mov&&&&&eax,&[edx]
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&edi,&eax
&&.text:&&&&&&&&&&&&&&&&&cmp&&&&&ecx,&edi
&&.text:&&&&&&&&&&&&&&&&&jnb&&&&&short&loc_
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&edi,&ecx&&&&&&&&;&在&EDI&中保留转换后的地址字串长度值
&&.text:&loc_:&&&&&&&&&&&&&&&&&&&&&&&&&&&;&CODE&XREF:&_Convert_Param_to_Str+144j
&&.text:&&&&&&&&&&&&&&&&&sub&&&&&eax,&[ebp+8]
&&.text:1000F22B&&&&&&&&&&&&&&&&&cmp&&&&&eax,&edi
&&.text:1000F22D&&&&&&&&&&&&&&&&&ja&&&&&&short&loc_
&&.text:1000F22D
&&.text:1000F22F&&&&&&&&&&&&&&&&&call&&&&ds:std::_Xlen(void)
&&.text:1000F22F
&&.text:&loc_:&&&&&&&&&&&&&&&&&&&&&&&&&&&;&CODE&XREF:&_Convert_Param_to_Str+14Dj
&&.text:&&&&&&&&&&&&&&&&&test&&&&edi,&edi
&&.text:&&&&&&&&&&&&&&&&&jbe&&&&&short&loc_1000F27C
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&ebx,&[ebp+8]
&&.text:1000F23C&&&&&&&&&&&&&&&&&push&&&&0
&&.text:1000F23E&&&&&&&&&&&&&&&&&add&&&&&ebx,&edi&&&&&&&&;&地址字串长度或指令+地址字串长度送到&EBX
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&ecx,&ebp
&&.text:&&&&&&&&&&&&&&&&&push&&&&ebx
&&.text:&&&&&&&&&&&&&&&&&call&&&&ds:std::basic_string&char,std::char_traits&char&,std::allocator&char&&::_Grow(uint,bool)
&&.text:&&&&&&&&&&&&&&&&&test&&&&al,&al
&&.text:1000F24B&&&&&&&&&&&&&&&&&jz&&&&&&short&loc_1000F27C
&&.text:1000F24B
&&.text:1000F24D&&&&&&&&&&&&&&&&&mov&&&&&esi,&[esi+4]&&&&;&[ESI+4]中就是转换后的地址字串
&&.text:&&&&&&&&&&&&&&&&&test&&&&esi,&esi
&&.text:&&&&&&&&&&&&&&&&&jnz&&&&&short&loc_1000F25A
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&esi,&ds:char&const&`std::basic_string&char,std::char_traits&char&,std::allocator&char&&::_Nullstr(void)'::`2'::_C
&&.text:1000F25A
&&.text:1000F25A&loc_1000F25A:&&&&&&&&&&&&&&&&&&&&&&&&&&&;&CODE&XREF:&_Convert_Param_to_Str+172j
&&.text:1000F25A&&&&&&&&&&&&&&&&&mov&&&&&eax,&[ebp+4]
&&.text:1000F25D&&&&&&&&&&&&&&&&&mov&&&&&ecx,&edi
&&.text:1000F25F&&&&&&&&&&&&&&&&&mov&&&&&edi,&[ebp+8]
&&.text:&&&&&&&&&&&&&&&&&add&&&&&edi,&eax
&&.text:&&&&&&&&&&&&&&&&&mov&&&&&eax,&ecx
&&----------------------------------------------------------------------------------------------------------
&&现在复制一个原版的&OllyDBG,只配置&SkyPatch&这一个插件,这个新配置的&OD&我们设为&OD1。现在用我们自己常用的&OD&打开&OD1,用&OD1&载入我们要打补丁的程序,调用&SkyPatch&打开要写入的补丁脚本。现在转到我们自己常用的&OD&中,ALT+E&打开模块窗口,双击&SkyPatch&模块,在汇编窗口中定位到我们上面看到的代码处,设断点。当然上面的代码是我已经结合&OD&分析过的,第一次我们可能定位的位置并不一定对。不过没关系,可以根据断下来后程序的执行情况再调整断点。这个各位可以自己测试。现在说一下在&OD&中调试看到的情况:
&&026AF1F4&&|.&&50&&&&&&&&&&&&PUSH&EAX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&EAX&就是参数经过转换后所得到的地址&DWORD&值
&&026AF1F5&&|.&&FF15&60306B02&CALL&DWORD&PTR&DS:[&&MSVCP60.??6?$basic_ostream@&;&&MSVCP60.??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@I@Z
&&026AF1FB&&|.&&8D4C24&20&&&&&LEA&ECX,DWORD&PTR&SS:[ESP+20]
&&026AF1FF&&|.&&51&&&&&&&&&&&&PUSH&ECX
&&026AF200&&|.&&B9&807C6B02&&&MOV&ECX,026B7C80
&&026AF205&&|.&&FF15&F8306B02&CALL&DWORD&PTR&DS:[&&MSVCP60.?str@?$basic_string&;&&MSVCP60.?str@?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ
&&026AF20B&&|.&&8BF0&&&&&&&&&&MOV&ESI,EAX
&&026AF20D&&|.&&8B15&BC306B02&MOV&EDX,DWORD&PTR&DS:[&&MSVCP60.?npos@?$basic_st&;&&MSVCP60.?npos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@2IB
&&026AF213&&|.&&8B4E&08&&&&&&&MOV&ECX,DWORD&PTR&DS:[ESI+8]&&&&&&&&&&&&&&&&&&&&&;&&转换后的地址字串长度
&&026AF216&&|.&&C&MOV&DWORD&PTR&SS:[ESP+38],1
&&026AF21E&&|.&&8B02&&&&&&&&&&MOV&EAX,DWORD&PTR&DS:[EDX]
&&026AF220&&|.&&8BF8&&&&&&&&&&MOV&EDI,EAX
&&026AF222&&|.&&3BCF&&&&&&&&&&CMP&ECX,EDI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&比较字串长度是否大于等于0
&&026AF224&&|.&&73&02&&&&&&&&&JNB&SHORT&026AF228
&&026AF226&&|.&&8BF9&&&&&&&&&&MOV&EDI,ECX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&在&EDI&中保留转换后的地址字串长度值
&&026AF228&&&&&&2B45&08&&&&&&&SUB&EAX,DWORD&PTR&SS:[EBP+8]
&&026AF22B&&&&&&3BC7&&&&&&&&&&CMP&EAX,EDI
&&026AF22D&&|.&&77&06&&&&&&&&&JA&SHORT&026AF235
&&026AF22F&&|.&&FF15&CC306B02&CALL&DWORD&PTR&DS:[&&MSVCP60.?_Xlen@std@@YAXXZ&]&;&&MSVCP60.?_Xlen@std@@YAXXZ
&&026AF235&&|&&&85FF&&&&&&&&&&TEST&EDI,EDI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&判断字串长度是否等于0
&&026AF237&&|.&&76&43&&&&&&&&&JBE&SHORT&026AF27C
&&026AF239&&|.&&8B5D&08&&&&&&&MOV&EBX,DWORD&PTR&SS:[EBP+8]
&&026AF23C&&|.&&6A&00&&&&&&&&&PUSH&0
&&026AF23E&&|.&&03DF&&&&&&&&&&ADD&EBX,EDI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&地址字串长度或指令+地址字串长度送到&EBX
&&026AF240&&|.&&8BCD&&&&&&&&&&MOV&ECX,EBP
&&026AF242&&|.&&53&&&&&&&&&&&&PUSH&EBX
&&026AF243&&|.&&FF15&C0306B02&CALL&DWORD&PTR&DS:[&&MSVCP60.?_Grow@?$basic_stri&;&&MSVCP60.?_Grow@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAE_NI_N@Z
&&026AF249&&|.&&84C0&&&&&&&&&&TEST&AL,AL
&&026AF24B&&|.&&74&2F&&&&&&&&&JE&SHORT&026AF27C
&&026AF24D&&&&&&8B76&04&&&&&&&MOV&ESI,DWORD&PTR&DS:[ESI+4]&&&&&&&&&&&&&&&&&&&&&;&&[ESI+4]中就是转换后的地址字串
&&026AF250&&&&&&85F6&&&&&&&&&&TEST&ESI,ESI
&&026AF252&&|.&&75&06&&&&&&&&&JNZ&SHORT&026AF25A
&&026AF254&&|.&&8B35&1C316B02&MOV&ESI,DWORD&PTR&DS:[&&MSVCP60.?_C@?1??_Nullstr&;&&MSVCP60.?_C@?1??_Nullstr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@CAPBDXZ@4DB
&&026AF25A&&&&&&8B45&04&&&&&&&MOV&EAX,DWORD&PTR&SS:[EBP+4]&&&&&&&&&&&&&&&&&&&&&;&&这里改成跳到我们的补丁代码处执行
&&026AF25D&&&&&&8BCF&&&&&&&&&&MOV&ECX,EDI
&&026AF25F&&|.&&8B7D&08&&&&&&&MOV&EDI,DWORD&PTR&SS:[EBP+8]
&&026AF262&&|.&&03F8&&&&&&&&&&ADD&EDI,EAX
&&026AF264&&|.&&8BC1&&&&&&&&&&MOV&EAX,ECX
&&026AF266&&|.&&C1E9&02&&&&&&&SHR&ECX,2
&&026AF269&&|.&&F3:A5&&&&&&&&&REP&MOVS&DWORD&PTR&ES:[EDI],DWORD&PTR&DS:[ESI]
&&026AF26B&&|.&&8BC8&&&&&&&&&&MOV&ECX,EAX
&&026AF26D&&|.&&83E1&03&&&&&&&AND&ECX,3
&&026AF270&&|.&&F3:A4&&&&&&&&&REP&MOVS&BYTE&PTR&ES:[EDI],BYTE&PTR&DS:[ESI]
&&----------------------------------------------------------------------------------------------------------
&&从上面可以看出,程序是调用了&STL&模板库中的标准函数把地址的&DWORD&转成了字串,不过后面没对转换后字串的第一个字符是否位于“a”到“f”间作判断,就直接拿来用了。导致会出现我们开始时提到的那个错误。现在我们只要加上这个判断,如果第一个字符在“a”到“f”之间,我们就在字串前面插一个“0”字符。这里就偷个懒,直接判断第一个字符是否大于字符“9”,如果大于则在字串前面插一个“0”字符。找一个空白地方写我们的代码,我这把补丁代码放在&RVA&125C0&处。根据程序在我这重定位后的基址,我在&VA&026B25C0&处写补丁代码。先把上面地址&026AF25A&处的代码改为跳到我们的补丁代码处执行:
&&----------------------------------------------------------------------------------------------------------
&&修改后代码:
&&026AF25A&&&&&&E9&&&&JMP&026B25C0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&这里改成跳到我们的补丁代码处执行
&&026AF25F&&|.&&8B7D&08&&&&&&&MOV&EDI,DWORD&PTR&SS:[EBP+8]
&&----------------------------------------------------------------------------------------------------------
&&要写的补丁代码:
&&026B25C0&&&&&&60&&&&&&&&&&&&PUSHAD&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&保护现场
&&026B25C1&&&&&&9C&&&&&&&&&&&&PUSHFD
&&026B25C2&&&&&&803E&39&&&&&&&CMP&BYTE&PTR&DS:[ESI],39&&&&&&&&&&&&&&&&&&&&&&&&&;&&第一个字符是否大于9
&&026B25C5&&&&&&7F&0C&&&&&&&&&JG&SHORT&026B25D3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&大于9则处理,否则返回
&&026B25C7&&&&&&9D&&&&&&&&&&&&POPFD
&&026B25C8&&&&&&61&&&&&&&&&&&&POPAD
&&026B25C9&&&&&&8B45&04&&&&&&&MOV&EAX,DWORD&PTR&SS:[EBP+4]
&&026B25CC&&&&&&8BCF&&&&&&&&&&MOV&ECX,EDI
&&026B25CE&&&&^&E9&8CCCFFFF&&&JMP&026AF25F
&&026B25D3&&&&&&C&&MOV&BYTE&PTR&DS:[ESI+EDI+1],0&&&&&&&&&&&&&&&&&&&&;&&地址字串最后面添加一个0字节
&&026B25D8&&&&&&8A443E&FF&&&&&MOV&AL,BYTE&PTR&DS:[ESI+EDI-1]
&&026B25DC&&&&&&88043E&&&&&&&&MOV&BYTE&PTR&DS:[ESI+EDI],AL&&&&&&&&&&&&&&&&&&&&&;&&这里依次把地址字串的字符向后移一位,以便我们在字串开始的地方插一个0
&&026B25DF&&&&&&4F&&&&&&&&&&&&DEC&EDI
&&026B25E0&&&&&&83FF&00&&&&&&&CMP&EDI,0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&判断字串是否都已移完
&&026B25E3&&&&^&75&F3&&&&&&&&&JNZ&SHORT&026B25D8
&&026B25E5&&&&&&C606&30&&&&&&&MOV&BYTE&PTR&DS:[ESI],30&&&&&&&&&&&&&&&&&&&&&&&&&;&&在地址字串前面加一个字符0
&&026B25E8&&&&&&9D&&&&&&&&&&&&POPFD
&&026B25E9&&&&&&61&&&&&&&&&&&&POPAD
&&026B25EA&&&&&&43&&&&&&&&&&&&INC&EBX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&指令字串总长度加1
&&026B25EB&&&&&&47&&&&&&&&&&&&INC&EDI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&地址字串长度加1
&&026B25EC&&&&&&8B45&04&&&&&&&MOV&EAX,DWORD&PTR&SS:[EBP+4]&&&&&&&&&&&&&&&&&&&&&;&&恢复原始代码并返回继续执行
&&026B25EF&&&&&&8BCF&&&&&&&&&&MOV&ECX,EDI
&&026B25F1&&&&^&E9&69CCFFFF&&&JMP&026AF25F&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;&&返回到原程序的下一句代码继续执行
&&附件是&dup&制作的补丁,可以直接对&SkyPatch&1.1&进行&patch&修正&bug。
--------------------------------------------------------------------------------
【版权声明】:&本文纯属技术交流,&转载请注明作者并保持文章的完整,&谢谢!上传的附件

我要回帖

更多关于 dnf插件补丁 的文章

 

随机推荐