步骤 9: 注入++: (密码=31337157)
我们在这一步做的基本上和步骤 7(代码注入) 一样,但现在会有一点地方非常困难.现在你必须使用一段代码编辑减少血量的代码并设置血量到1000(如果当前值大于等于30并小于2000)这可以做成用 api 调用一些子程序来获取当前时间的自动汇编脚本,它可以较早的使用 C脚本注入这里找到血量的地址并转到 CE 脚本引擎 (内存查看器 ctrl+alt+a , 工具->脚本引擎)此时会有一个很大的提示反对到其它教程(万一你不会C语言)

----------------
#include <time.h>

struct tm *timep;
time_t c;
c=time(0);

timep=localtime(&c);

if (timep->tm_sec>=30)
  *(int *)addresstochange=1000;
else
  *(int *)addresstochange=2000;
-------------
此处使用血量的地址改编 addresstochange.不要忘记在前面加 0x.如果地址是0012345,则输入0x0012345

选择注入->注入到当前进程并使用里面的一个 CALL 打开一个自动汇编脚本.现在正好和步骤7那样转到减少血量的地址并选择 自动汇编->模板->代码注入. 并输入你获取的代码调用指令. 需要注意的是此次调用将更改 EAX 的值,因此你要在压栈之前和出栈之后保存它们, 并且移除原始代码。它未被使用或只会增加困难。
 
点击执行后点击 TUT 的 "打我" 按钮 .如果按钮的点击都正确会促成脚本运行并符合当前时间改变血值。

额外信息:
正如前面所说,它可以使用一个标准的汇编脚本来完成。为了以后容易辨认 CE 允许你输入调用指令的功能名称。你也可以只用一个脚本对应使用一个DLL注入。例如:
injectdll(mydll.dll) //dll 写入你需要的术语

codecave:
call functionofmydll
jmp exit

--------------------------------------------------------------------------------------------------------------------------

额,大家好.不好意思哈昨天回老家了第八章今天才写.额,最近东北挺多雨的,我这里随时都有可能发大水停电.不过我不会懒惰.我会继续写东西给大家看.

好啦开始我们今天的章节吧.今天来讲CE教程工具的最后一章《注入++》额,总的来说操作起来不算太难啦。只不过涉及到了C语言可能会有朋友不懂,不过没关系。作者已经给了我们一个代码原型,我们照着修改一下就OK了。好教程开始吧。

1.教程工具给了我们一个数值,我们要把它用代码注入的方式使脚本运行并符合当前时间改变血值。第一步跟前几章一样找到数值的内存地址。

2.在地址上右键单击选择“查找写入该地址的代码”。

3.这将附加CE调试器到当前进程上。继续?  选择“YES”。

4.回到教程工具点“打我”。选择出现的地址,单击“显示反汇编程序”。

5.选择最上面的地址下面出现“目标减一”。说明地址是正确的。

6.点击“工具”,选择“脚本引擎”。

7.在弹出的脚本引擎窗口填写代码:

-----------------------------代码简单的解释----------------------------

#include <time.h>

struct tm *timep;
time_t c;
c=time(0);

int addresstochange=0x01B8298C;  //原代码是没有这句的这句的意思就是int定义整形变量addresstochange=地址.就是把右边的地址付给左边的变量addresstochange(注:大家也可以直接替换代码内addresstochange为自己的地址.)(提醒:定义一个整形变量后要在结尾处写下分号;符号这个学过C语言的都知道吧.嘿嘿^ ^)

timep=localtime(&c);

if (timep->tm_sec>=30) //额简单解释下吧.if是如果的意思.这句代码就是如果timep->tm_sec>=30执行以下代码.
  *(int *)addresstochange=1000;  //将1000这个数值附给addresstochange
else           //否则timep->tm_sec>=30这个表达式不成立则执行这行下面的代码.
  *(int *)addresstochange=2000;  //将1000这个数值附给addresstochange

-------代码如下(注意红色部分改成自己的数值地址)------

#include <time.h>

struct tm *timep;
time_t c;
c=time(0);

int addresstochange=0x01B8298C;

timep=localtime(&c);

if (timep->tm_sec>=30)
  *(int *)addresstochange=1000;
else
  *(int *)addresstochange=2000;

-----------------------------------------------------------------------------

8.好,我们选择“注入”。选择“注入到当前进程”。

9.自动弹出窗口“自动汇编”。注意俩个窗口是不同的。在弹出的“自动汇编”窗口点击“模板”,选择“代码注入”。

10.注意自动填写的代码要和汇编里的一样否则需要手动填写。填好后点“OK”。

11.自动为我们填好了代码。我们来简单分析一下。

----------------------------代码------------------------

//?????????????????§????????????????????????ì????????????????????ì?????????????????????????¨?????????????????????§???????????????????§?????????????????????§??????????????????????ì????????????????????ì??????|??????????????¨?????????????????????????§??????????????????????????§???????2?????DD?????????????????¨?????????????????????§???????????????????§???????
call 03E400F6  //这句是调用我们写的代码.CALL的意思是门CALL的意思就是调用某个类进入某扇门. - - 貌似越说越糊涂.

//3?????????????§??????|1|???DDo?????????????§??????? eax==0
//'call underc_geterror' ????????????¨??????????????????§????????????????§?????????????????????¨??????????????????¨???????????|????????????ì????????????????????ì????????????????¨?????|?o????????????¨???????2????????????¨??????2????????????¨??????|????????????¨??????2??????????????¨??????a?????????????¨???????|????????????ì????????o3????
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

004566CA:
jmp newmem //这个在代码注入的章节跟大家说过了jmp在汇编代码里是转跳的意思.这句的意思是代码走到这里转跳到newmem这个地方执行.
nop   //nop无用代码
returnhere:

newmem: //this is allocated memory, you have read,write,execute access
//place your code here//在这里写下我们的代码.

originalcode:
dec [ebx+00000310] //原代码 dec 使目标减一.修改时删除这个.

exit:
jmp returnhere
---------------------------修改后(乱码和//注视的地方都可以扔掉)--------------------------

注意那个CALL要剪切掉移动到newmem下面.!!!!注意注意.然后删掉原来的代码dec

---------------------------------------------------------------------------------------------------------

alloc(newmem,2048)

label(returnhere)
label(originalcode)
label(exit)

004566CA:
jmp newmem

nop
returnhere:

newmem:

call 03E400F6
originalcode:

exit:
jmp returnhere

---------------------------------------------------------------------------------------------------------

12.最后单击“执行”,代码可以注入“YES”。

13.我的已经提示注入成功,回到教程工具点“打我”。“下一步”变为可点击。


14.最后来个特写。吼吼。

好啦。CE的教程到此结束啦。感谢大家一直以来的支持。其实CE的教程都是基础。希望大家以后能更好的掌握更多的知识。再见。(这次不做广告啦。(*^__^*) 嘻嘻……)

CE教程 第八章 《注入++》相关推荐

  1. CE教程 第七章 《多级指针》

    步骤 8: 多级指针: (密码=525927) 这一步教学将会解释该如何使用多级指针.在第 6 步的教学中你应该了解到简单的1级指针的概念和用途, 以及如何由数据的地址找到真正的基址.在本步教学中,你 ...

  2. Angular 4 依赖注入教程之一 依赖注入简介

    目录 Angular 4 依赖注入教程之一 依赖注入简介 Angular 4 依赖注入教程之二 组件服务注入 Angular 4 依赖注入教程之三 ClassProvider的使用 Angular 4 ...

  3. 【转载】Windwos CE 跨进程内存注入

    一.程序实现的先决条件 由于windows系统的窗体消息总是投递至一个特定进程的指定窗体消息函数中.于是在本地进程(自己的应用程序)中取得属于其它进程的窗体的消息必须实现以下两个部分: 1.将需要挂接 ...

  4. 微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现

    接着上面微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现.(第一二章:微信小程序开发教程,第三四章:微信小程序项目结构以及配置&微信小程序首页面开发,第五章:微信小程序名片夹详情页开 ...

  5. CE教程 第四章 《代码寻找》

    步骤 5: 代码寻找 (密码=888899) 有时一些东西的保存位置在你重新开始游戏时会改变,甚至是在你玩的时候也会变,在这种情况下,你 用2步仍然能做出可以用的内存列表. 在这一步会说明怎样用寻找代 ...

  6. 【sql注入教程】SQL注入是什么?我们如何去玩转它

    [sql注入教程]SQL注入是什么?我们如何去玩转它 本文转自:i春秋社区   SQL注入攻击是黑客攻击数据库最常见手段之一.简单讲,SQL注入攻击是黑客利用网站程序漏洞,通过提交精心构造的SQL语句 ...

  7. 荒野行动c语言编写游戏,【原创】CE教程:《荒野行动》从内存数据修改到代码注入(不再更新)...

    [Asm] 纯文本查看 复制代码// 首先定义了很多常量 // 这个代码地址是原来的计算已经结束的地方,我们的目的是在得到原始计算结果之后再进行修改 define(address,"hyxd ...

  8. STM32 进阶教程 17 - ADC注入通道

    前言 STM32 的ADC的一个强大功能是支持触发注入功能,在103中每个ADC模块支持4个注入通道,每个注入通道具有独立的结果突存器,注入通道具有较规划通道更高的优先级,在实际工程应用中,注入通道更 ...

  9. 植物大战僵尸CE教程

    目录 向日葵不断冒阳光 植物冷却时间 卡槽基址 向日葵不断冒阳光 种下向日葵后,会有一个计时器,时间在不断的减少,直到变为0时,向日葵 冒出一个阳光,计时器增大,根据计时器数值的减少,找到改地址,并进 ...

  10. CE教程 第五章 《指针》

    步骤 6: 指针: (密码=098712) 上一步解释了怎样用代码寻找功能对付变化位置.但单独用不容易找到地址并修改成你要的数值.这就是为什么要用到指针了.在TUT下面有两个按钮,一个会改变数值,另一 ...

最新文章

  1. 在windows8 上安装framework 3.5
  2. 论坛报名 | “她时代”来临,AI科技女性将如何影响世界
  3. java 内嵌汇编_C6000嵌入汇编C与汇编对照及功能说明
  4. CF467C George and Job
  5. ICLR 2017 | GAN Missing Modes 和 GAN
  6. 微信企业号开发:启用回调模式
  7. oracle10g 克隆安装,克隆Oracle Home(10g2)
  8. 万年自学党聊聊如何选择编程学习资源?
  9. 报告解读下载 | 中国软件根技术发展白皮书之数据库
  10. 26期20180615磁盘格式化挂载以及手动增加swap空间
  11. selenium2 webdriver要点理解
  12. 教你轻松计算AOE网关键路径(转)
  13. 恩智浦智能车赛。摄像头处理函数。
  14. 把照片的字转换为数字版
  15. git commit最佳实践:conventional commits
  16. PF-TD2PO1,PF-TD2DV2,PFSO-BT1,PFSO-DTBT1光电中间体材料
  17. Lattice Mico8在LMS创建一个工程和创建LED程序
  18. 以大数据重塑K12在线教育
  19. 用mysql编资产负债表_资产负债表如何编制!
  20. java实现商品sku_jquery实现商品sku多属性选择功能(商品详情页)

热门文章

  1. ToStringBuilder学习总结
  2. 对百度百科SSL证书的解读
  3. 应用随机过程_《常见随机过程》(目录)
  4. 《物联网开发实战》16 实战准备:如何搭建硬件开发环境?(学习笔记)
  5. android 模拟器 超时,Appcelerator Studio超时等待Android模拟器启动
  6. VS各个版本的密钥及下载地址
  7. JAVA回合制pk游戏
  8. 几款Android 应用自动化测试工具
  9. java 模拟ping_模拟Ping操作的一个Java类
  10. win10系统下360加速球不显示网速解决方法