小甲鱼OD知识

合集下载

OD使用教程10 - 解密系列【调试篇】

OD使用教程10 - 解密系列【调试篇】
• 不过作为类似的语言,小甲鱼建议大家可以学下 Delphi或者C#。
OD使用教程10
• 大家或许有所察觉了,随着我们课程的不断深入 学习,我们感觉自身逆向的“内功”也在不断的 增进!
• 我们从爆破入手,到现在逐步大家进入程序的内 部,认识不同编译器开发的程序,探索不同的加 密逻辑。
• 前边,我们的例子中既有VC++开发的程序,也有 Delphi开发的程序,今天我们给大家分析一个VB 程序的加密和解密思路。
OD使用教程10
• 我们看到了,这个程序是一个VB程序。 • Virtual BASIC是由早期DOS时代的BASIC语言程语言:就是在可视化编程 环境下我们可以绘制一些窗体,按钮,编辑框等 控件,然后为这些控件所可能引发的事件如按钮 被单击或者被双击编写对应的处理代码。
OD使用教程10
• 为了让大家更好地了解逆向,我们需要掌握不同 编译器编译出来的程序的特点,然后才能有针对 性的进行逆向。
• 其中,在逆向一个程序前,先搞清楚这个程序是 由什么编译器和神马语言写出来的,是灰常必要 的。
• 高手只需要从代码间的细小差别就可以看出端倪 ,而菜鸟们也有便捷的工具可以一步到位告诉你 这个程序是由什么编译器编译的:PEiD.exe

甲鱼养殖知识点

甲鱼养殖知识点

甲鱼养殖知识点甲鱼是一种珍贵的水生动物,在饲养过程中需要特别注意饲养环境和饲养方法。

下面是一些甲鱼养殖的知识点,供您参考。

1. 饲养环境- 水体:甲鱼需要清澈、无污染的水质。

养殖池应该保持适宜的水质,可以采用定期更换水或搭建过滤设备的方式来维持水质清洁。

- 温度:甲鱼适合在25℃-30℃的温度下生长。

可以根据季节变化进行水温调控,保持水温稳定。

- 光照:适度的光照有助于甲鱼的正常生长和代谢,可以选择合适的光照时间和强度。

2. 饲养方法- 饲料:甲鱼的饲料种类多样,可以根据不同阶段的需求选择合适的饲料。

常见的饲料有鱼饵、水生植物叶片、虫类等,也可以补充一定量的维生素和矿物质。

- 饲养密度:合理控制饲养密度有助于甲鱼的生长和健康。

过高的密度会导致饲料竞争激烈,影响甲鱼的摄食和生长。

- 饲养管理:定期检查甲鱼的健康状况,观察是否有异常情况。

对重要指标如水质、温度、饲料等进行监测,及时调整和处理。

3. 病害防治- 病害预防:保持饲养环境的清洁卫生,避免污水和有害物质的积累。

注意甲鱼的饲料卫生,避免使用过期或变质的饲料。

- 常见病害:甲鱼可能患上呼吸道感染、消化道疾病、寄生虫感染等。

一旦发现异常症状,应及时进行诊断和治疗,避免疾病扩散。

4. 孵化与繁殖- 孵化:甲鱼的孵化需要适宜的温度和湿度条件。

孵化箱内应保持稳定的温湿度,孵化时间一般为60-90天左右。

- 繁殖:甲鱼的繁殖可以通过交配和人工授精两种方式进行。

饲养环境中应提供适宜的繁殖条件,如选择合适的交配伴侣、创造适宜的巢穴环境等。

5. 销售与市场需求- 销售渠道:甲鱼的销售可以选择当地的市场、餐饮行业等渠道。

也可以利用互联网平台拓展销售范围,提高销售效益。

- 市场需求:市场对于优质的甲鱼产品有一定需求,如鲜活的甲鱼、甲鱼幼苗等。

可以根据市场需求进行养殖规模和品种的选择。

甲鱼养殖是一项技术含量较高的养殖项目,需要投入一定的资金和精力。

希望本文提供的知识点对您了解和开展甲鱼养殖有所帮助。

OD使用教程 -

OD使用教程 -

调试技巧总结
• 7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。 • 8.按“Ctrl+G”键打开跟随表达式的窗口。 • 9.也可以通过“Ctrl+N”键打开应用程序的导入表( 输入表),然后查看应用程序总共导入了哪些函数来 以此推断需要在哪里挖坑下陷阱! • 10.关于返回值,汇编代码的返回值约定是存放在eax 这个寄存器里边的,如果32位的eax不够存放返回值 ,系统会将返回值放在内存某个位置并把该位置的地 址放在eax返回。
调试技巧总结
• 4.所谓领空,实际上就是指在某一时刻,CPU执 行的指令所在的某段代码的所有者。 • 5.如004013F7这类地址一般是可执行文件领空, 7C8114AB这类大地址一般是系统DLL所在的地 址空间。 • 6.程序通常读取文本框内容的字符串用的是以下 两个函数:
– GetDlgItemTextA(GetDlgItemTextW) – GetWindowTextA(GetWindowTextW)
OD使用教程
• 今天小甲鱼给大家演示使用OD破解《解密系列》 里边的小程序的过程。 • 《解密系列》里固然破解过程说明,但是看过此 书的朋友无不说太简单带过了,书中仅提到破解 该程序的简要步骤。 • 但是我们强调一定要知其然且知其所以然!所以 在今天的演示中,小甲鱼会用一样的程序讲出更 全面的内容! • 鸡冻吧?那上课就别睡觉了哦~
• 演示中… …
调试技巧总结
• 1.F2下断点,Alt+b打开断点编辑器,可编辑所 有下过的断点,空格键可快速切换断点状态。 • 2.当位于某个CALL中,这时想返回到调用这个 CALL的地方时,可以按“Ctrl+F9”快捷键执行 返回功能。这样OD就会停在遇到的第一个返回命 令(如RET、RETF或IRET)。 • 3.如果跟进系统DLL提供的API函数中,此时想返 回到应用程序领空里,可以按快捷键“Alt+F9” 执行返回到用户代码命令。

有关甲鱼的知识点总结

有关甲鱼的知识点总结

有关甲鱼的知识点总结生物学特征甲鱼的外观特征主要有两个方面,一个是硬壳,一个是身体构造。

首先,我们来看看它们的硬壳。

甲鱼的硬壳是一种典型的特征,它由胚胎层、骨骼层和角质层组成。

这三层构造使得甲鱼的壳坚硬而有弹性,可以有效地保护其身体不受外界伤害。

此外,甲鱼的壳还有着美丽的图案和颜色,使得它们在外表上也颇具观赏价值。

其次,我们来看看甲鱼的身体构造。

甲鱼的身体分为头部、颈部、背部、腹部和四肢。

在头部,甲鱼有一个圆形的头部,有着发达的嗅觉器官和视觉器官,能够辨别周围的环境。

颈部非常柔软,可以伸缩自如。

在背部和腹部上都有着坚硬的壳,在四肢上有着爪子。

此外,甲鱼的尾巴也是一个非常重要的构造。

甲鱼的尾巴非常强壮而有力,可以帮助它们在水中游动。

而甲鱼的肌肉非常发达,能够迅速地调整自己的姿势和速度。

甲鱼的生活习性也非常独特。

它们是一种冷血动物,它们的活动和食欲都受到环境温度的影响。

在寒冷的冬季,甲鱼会进入休眠状态,几乎不再进食和活动,待到春天来临时再度苏醒。

这种习性使得甲鱼不易被外界环境所影响,是一种非常适应水域生活的爬行动物。

饲养管理甲鱼的饲养管理也是一个非常重要的话题。

由于甲鱼是水生动物,因此在饲养甲鱼时需要有一个合适的水域环境。

首先,我们来看看水质的问题。

甲鱼需要的水质是清澈透明的、含氧量高的水质。

在饲养甲鱼时,需要经常更换水质,并定期清洗水槽,保持水质的清洁和透明度。

其次,我们来看看饲料的问题。

在甲鱼的饲养中,需要给它们提供适宜的饲料。

甲鱼的饲料主要是水生植物、小型无脊椎动物和少量的水果和蔬菜。

在喂食时,需要适量的给甲鱼提供食物,不能给予过多的食物,以免对甲鱼的健康造成影响。

同时,还需要注意给甲鱼提供足够的维生素和矿物质,以保证它们的身体健康。

此外,甲鱼的饲养环境也是一个非常重要的问题。

在饲养甲鱼时,需要提供一个宽敞的水域空间,摆放一些水草和岩石,为甲鱼提供一个适宜的居住环境。

在水域中应该安装过滤设备和加热设备,以保证水质清洁和温度适宜。

小甲鱼《零基础入门学习Python》课堂笔记

小甲鱼《零基础入门学习Python》课堂笔记

[键入公司名称]人生苦短,我用Python [键入文档副标题]徐辉[选取日期]目录01讲:我和Python的第一次亲密接触 (12)02讲:用Python设计第一个游戏 (15)03讲:小插曲之变量和字符串 (17)04讲:改进我们的小游戏 (19)05讲:闲聊之Python的数据类型 (21)06讲:Pyhon之常用操作符 (22)07讲:了不起的分支和循环1 (23)08讲:了不起的分支和循环2 (25)09讲:了不起的分支和循环3 (27)10讲:列表,一个打了激素的数组1 (29)11讲:列表,一个打了激素的数组2 (31)12讲:列表,一个打了激素的数组3 (33)13讲:元组,戴上了枷锁的列表 (36)14讲:字符串:各种奇葩的内置方法 (38)15讲:字符串的格式语句与操作符 (43)16讲:序列相关内置函数介绍 (46)1-16讲:阶段总结 (51)17讲:函数:Python的乐高积木 (52)18讲:函数:灵活即强大 (53)18讲2:py文件打包成exe文件 (55)19讲:函数:我的地盘我做主 (56)20讲:函数:内嵌函数和闭包 (58)21讲:函数:lambda表达式 (60)22讲:函数:递归是神马 (61)23讲:递归:这帮小兔崽子 (62)24讲:递归:汉诺塔 (63)17-24讲:阶段性总结 (64)25讲:字典:当索引值不好用时 (65)26讲:字典:当索引值不好用时2 (66)27讲:集合:在我的世界里,你就是唯一 (69)28讲:文件:因为懂你,所以永恒 (70)29讲:文件:一个任务 (72)30讲:文件系统:介绍一个高大上的东西 (75)31讲:永久存储:腌制一缸美味的泡菜 (79)31讲:异常处理:你不可能总是对的 (80)33讲:异常处理:你不可能总是对的2 (82)34讲:丰富的else语句和简洁的with (85)35讲:图形界面用户入门:EasyGui (87)36讲:类和对象:给大家介绍对象 (87)37讲:类和对象:面向对象编程 (89)38讲:类和对象:继承 (90)39讲:类和对象:拾遗 (91)40讲:类和对象:一些相关的BIF (94)41讲:类和对象:构造和析构 (96)42讲:类和对象:算术运算符 (98)43讲:类和对象:算术运算符2 (100)44讲:魔法方法:简单定制 (101)45讲:魔法方法:属性访问 (103)46讲:魔法方法:描述符 (105)47讲:魔法方法:定制容器 (108)48讲:魔法方法:迭代器 (109)序----小甲鱼四件在我步入职业软件开发生涯那天起就该知道的事情我的软件开发生涯开始于大约15年以前。

OD使用教程2 - 解密系列【调试篇】

OD使用教程2 - 解密系列【调试篇】
• 3.如果跟进系统DLL提供的API函数中,此时想返回 到应用程序领空里,可以按快捷键“Alt+F9”执行 返回到用户代码命令。
调试技巧总结
• 4.所谓领空,实际上就是指在某一时刻,CPU执行 的指令所在的某段代码的所有者。
• 5.如004013F7这类地址一般是可执行文件领空, 7C8114AB这类大地址一般是系统DLL所在的地址空 间。
• 6.程序通常读取文本框内容的字符串用的是以下 两个函数:
– GetDlgItemTextA(GetDlgItemTextW) – GetWindowTextA(GetWindowTextW)
调试技巧总结
• 7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。
• 8.按“Ctrl+G”键打开跟随表达式的窗口。 • 9.也可以通过“Ctrl+N”键打开应用程序的导入表(
准备工作
• 拆解一个Windows程序要比拆解一个DOS程序容易 得多,因为在Windows中,只要API函数被使用, 想对寻找蛛丝马迹的人隐藏一些东西是比较困难 的。
• 因此分析一个程序,用什么API函数作为切入点就 显得比较关键了。这也正是小甲鱼常跟大家说破 解靠的是耐心和经验的道理!
• 为了便于大家理解,我们先把TraceMe这个序列号 验证程序流程图给大家展示出来:
OD使用教程
• 今天小甲鱼给大家演示使用OD破解《解密系列》 里边的小程序的过程。
• 《解密系列》里固然破解过程说明,但是看过此 书的朋友无不说太简单带过了,书中仅提到破解 该程序的简要步骤。
• 但是我们强调一定要知其然且知其所以然!所以 在今天的演示中,小甲鱼会用一样的程序讲出更 全面的内容!

甲鱼鉴别知识教案

甲鱼鉴别知识教案

甲鱼鉴别知识教案教案标题:甲鱼鉴别知识教案教案目标:1. 了解甲鱼的基本特征和鉴别方法;2. 培养学生观察和比较的能力;3. 提高学生的科学知识和实践操作能力。

教学重点:1. 甲鱼的外部特征;2. 甲鱼与其他水生动物的区别;3. 甲鱼的鉴别方法。

教学难点:1. 学生对甲鱼的外部特征进行观察和比较;2. 学生对不同种类的甲鱼进行鉴别。

教学准备:1. 图片或实物展示甲鱼的外部特征;2. 多媒体设备(投影仪或电脑);3. 甲鱼鉴别的相关资料。

教学过程:一、导入(5分钟)1. 利用多媒体展示一些甲鱼的图片,引起学生的兴趣;2. 提问学生是否见过甲鱼,了解他们对甲鱼的认识。

二、知识讲解(10分钟)1. 通过多媒体展示甲鱼的外部特征,如壳的形状、颜色、纹理等;2. 讲解甲鱼与其他水生动物的区别,如鱼类、龟类等;3. 介绍甲鱼的种类和分布情况。

三、观察与比较(15分钟)1. 将实物甲鱼分发给学生,让他们观察甲鱼的外部特征;2. 学生分组进行比较,讨论甲鱼之间的异同点;3. 学生通过观察和比较,总结甲鱼的共同特征和不同之处。

四、鉴别方法(15分钟)1. 介绍甲鱼鉴别的方法,如观察壳的形状、颜色、纹理,观察头部和四肢等;2. 利用多媒体展示不同种类的甲鱼,让学生通过观察和比较来鉴别它们;3. 引导学生发现甲鱼鉴别的关键点和技巧。

五、实践操作(15分钟)1. 将不同种类的甲鱼图片分发给学生,让他们根据所学鉴别方法进行实践操作;2. 学生通过观察和比较,尝试鉴别图片中的甲鱼种类;3. 教师巡回指导,帮助学生解决问题。

六、总结与评价(10分钟)1. 学生进行小组或全班讨论,总结甲鱼鉴别的重要特征和方法;2. 教师进行总结性讲解,强调学生的学习成果;3. 对学生的表现进行评价,给予肯定和建议。

教学延伸:1. 鼓励学生进行甲鱼的实地观察和记录;2. 组织学生进行甲鱼的分类研究,拓展学生的科学知识。

教学资源:1. 甲鱼的图片或实物;2. 多媒体设备;3. 甲鱼鉴别的相关资料。

甲鱼知识介绍

甲鱼知识介绍

甲鱼知识介绍:甲鱼,学名鳖,又称水鱼、团鱼、鼋鱼,是人们喜爱的滋补水产佳肴,它无论蒸煮、清炖,还是烧卤、煎炸,都风味香浓,营养丰富。

甲鱼还具有较高的药用食疗价值。

甲鱼营养分析:1. 甲鱼肉及其提取物能有效地预防和抑制肝癌、胃癌、急性淋巴性白血病,并用于防治因放疗、化疗引起的虚弱、贫血、白细胞减少等症;2. 甲鱼亦有较好的净血作用,常食者可降低血胆固醇,因而对高血压、冠心病患者有益;3. 甲鱼还能“补劳伤,壮阳气,大补阴之不足”;4. 食甲鱼对肺结核、贫血、体质虚弱等多种病患亦有一定的辅助疗效。

甲鱼适合人群:一般人群均可食用1. 适宜体质衰弱,肝肾阴虚,骨蒸劳热,营养不良之人食用;适宜肺结核及肺外结核低烧不退之人食用;适宜慢性肝炎,肝硬化腹水,肝脾肿大,糖尿病,以及肾炎水肿之人食用;适宜各种类型的癌症患者及放疗化疗后食用;适宜干燥综合征患者食用;适宜高血脂,动脉硬化,冠心病,高血压患者食用;适宜低蛋白血症患者食用;适宜脚气病患者食用;2. 甲鱼滋腻,久食败胃伤中,导致消化不良,故食欲不振、消化功能减退、孕妇或产后虚寒、脾胃虚弱腹泻之人忌食;患有慢性肠炎、慢性痢疾、慢性腹泻便溏之人忌食;肝炎患者食用会加重肝脏负担,严重时值诱发肝昏迷,故应少食;孕妇吃了会影响胎儿健康;另外痰食壅盛者慎食。

甲鱼食疗作用:甲鱼肉性平、味甘;归肝经。

具有滋阴凉血、补益调中、补肾健骨、散结消痞等作用;可防治身虚体弱、肝脾肿大、肺结核等症。

甲鱼食物相克:甲鱼不宜与桃子、苋莱、鸡蛋、猪肉、兔肉、薄荷、芹菜、鸭蛋、鸭肉、芥末、鸡肉、黄鳝、蟹一同食用。

甲鱼做法指导:1. 死甲、变质的甲鱼不能吃;煎煮过的鳖甲没有药用价值;2. 生甲鱼血和胆汁配酒会使饮用者中毒或罹患严重贫血症;3. 甲鱼肉的腥味较难除掉,光靠洗或加葱、姜、酒等调料,都不能达到令人满意的效果;在宰杀甲鱼时,从甲鱼的内脏中捡出胆囊,取出胆汁,待将甲鱼洗涤后,将甲鱼胆汁加些水,涂抹于甲鱼全身;稍待片刻,用清水漂洗干净,甲鱼胆汁不苦,不用担心会使甲鱼肉变苦;4. 甲鱼的周身均可食用,特别是甲鱼四周下垂的柔软部分,称为“鳖裙”,其味道鲜美无比,别具一格,是甲鱼周身最鲜、最嫩、最好吃的部分,甲鱼肉极易消化吸收,产生热量较高,营养极为丰富,一般多做成“甲鱼汤”饮用,又可做成美味的佳肴,供人享用。

OD使用教程18 - 解密系列【调试篇】

OD使用教程18 - 解密系列【调试篇】
OD使用教程18
• 十八,是一个神奇的数字。每每提起,总让人心 旷神怡。例如十八精神,例如十八岁的天空,例 如有鱼油提出OD使用教程出到第十八讲就支持小 甲鱼。所以,咱这讲必须精彩!
• 小甲鱼认为,天网恢恢疏而不漏一直是句狗屁, 无孔不入才是逆向破解的基本精神!
• 正如天下无贼一直是空中楼阁般的愿望一样,加 密和破解是一个永恒的话题,有无孔不入的破解 存在,才能推动加密技术的更新和发展!
OD使用教程18
• 对话框从类型上分两类:modal对话框和modeless对 话框,翻译成中文就是模态对话框和非模态对话框 ,也有翻译成模式和非模式。
• 它们之间的区别在于是否允许用户在不同窗口间进 行切换:模态对话框不允许,非模态对话框允许。
• 两者形成区别的原理是模态对话框由windows为它 内建一个消息循环,而非模态对话框的消息则是通 过用户程序中的消息循环派送的。具体可以参考下 小甲鱼的《Win32汇编语言程序设计》系列视频教 程。
OD使用教程18
• 一直以来,小甲鱼总坚持以各种手段对软件进行 剖析力求突破,对的,今天我们还换个方法搞。
• 地球人都知道,菊花 = 屁股,那么如果一个程序 在屁股处留一个NAG,就好ቤተ መጻሕፍቲ ባይዱ是菊花被捅的感觉 。
• 嗯,作为课题的延生,让小甲鱼先给大家普及下 关于对话框的基本知识吧。
• 顾名思义,对话框就是完成“人机对话”的功能 ,就是程序与用户进行交互的中介,如输入参数 和输入文本,退出确认等。

小甲鱼零基础学python课后题

小甲鱼零基础学python课后题

一、关于小甲鱼零基础学Python课程小甲鱼的Python入门课程是一门面向零基础学习者的编程课程,以简单易懂的讲解方式,深入浅出地介绍了Python编程语言的基础知识和应用。

在课程中,小甲鱼用生动有趣的方式讲解了Python的基本语法、数据类型、条件语句、循环语句等内容,通过大量的实例讲解和编程练习,帮助学习者迅速入门并掌握Python编程的基本技能。

二、课后题目重要性课后题目是小甲鱼Python课程的重要组成部分,通过课后题目的练习,学习者可以巩固课程内容,提高编程技能,加深对Python编程语言的理解。

课后题目的设计旨在帮助学习者将课堂所学知识应用到实际问题中,提高解决问题的能力和编程思维。

三、小甲鱼零基础学Python课后题目特点小甲鱼Python课程的课后题目具有如下特点:1. 知识点全面:课后题目涵盖了课程所学知识的各个方面,包括基本语法、函数、模块、面向对象编程等内容,帮助学习者全面掌握Python编程语言。

2. 难度适中:课后题目难度设计合理,从简单到复杂,逐步增加,可以满足不同学习者的需求,帮助初学者循序渐进地提高编程能力。

3. 实用性强:课后题目设计紧密结合实际应用场景,有助于学习者将所学知识应用到实际问题中,提高实际编程能力。

四、小甲鱼零基础学Python课后题目如何实现巩固编程能力通过完成小甲鱼Python课程的课后题目,学习者可以达到以下目的:1. 巩固所学知识:课后题目设计精心,涵盖了课程所学的各个知识点,通过不断的练习,学习者可以加深对Python编程语言的理解,并掌握关键知识点。

2. 培养编程思维:通过解决实际问题,学习者可以逐步培养逻辑思维、分析问题和解决问题的能力,提高编程思维和解决问题的能力。

3. 提高实际应用能力:课后题目紧密结合实际应用场景,有助于学习者将所学知识应用到实际问题中,帮助学习者提高解决实际问题的能力。

五、如何合理安排时间完成小甲鱼零基础学Python课后题目为了有效地完成小甲鱼Python课后题目,建议学习者采取以下合理安排:1. 制定学习计划:在学习课程时,学习者可以合理制定学习计划,按照一定的时间表和进度安排完成课后题目。

小甲鱼OD知识

小甲鱼OD知识
VA(VirtualAddress,虚拟地址) RVA(RelativeVirtualAddress,相对虚拟地址) EP(EntryPoint,程序入口点)


关于SEH

SEH(Structured Exceptionows操作系统提供的功能,跟开发工具无关。 Windows程序设计中最重要的理念就是消息传递,事件驱动。当GUI应 用程序触发一个消息时,系统将把该消息放入消息队列,然后去查找 并调用窗体的消息处理函数(CALLBACK),传递的参数当然就是这个消 息。


GetWindowTextA(GetWindowTextW)
调试技巧总结

7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。 8.按“Ctrl+G”键打开跟随表达式的窗口。 9. 也可以通过“ Ctrl+N ”键打开应用程序的导入表 (输入表),然后查看应用程序总共导入了哪些函数 来以此推断需要在哪里挖坑下陷阱! 10.关于返回值,汇编代码的返回值约定是存放在eax 这个寄存器里边的,如果 32 位的 eax 不够存放返回值, 系统会将返回值放在内存某个位置并把该位置的地址 放在eax返回。


PE文件结构

PE文件结构:
DOS header DOS stub
PE File Header
Image Optional Header Section Table Data Directories Sections

No picture you say a J8„
小结

GetModuleHandleA 这 个 API 函 数 用 于 获 取 程 序 的 ImageBase(基址) 这个程序的 MessageBox 的 OwnerHandle (父窗口句柄) 为 0 ( NULL ),我们可以将这个值改为一个不存在的 值,例如 1 ,这样它就找不到老豆,就不会被显示出 来。 名词注释:

小甲鱼视频笔记整理(1-5)

小甲鱼视频笔记整理(1-5)

零基础入门学习Python(小甲鱼)笔记整理(class 1 - class 5)Class11、IDLE是一个python shell,shell就是一个通过键入文本与程序交互的路径。

2、Alt+n进入上一条语句;Alt+p进入下一条语句。

3、\n为换行符(lf),\r是回车符(CR)。

4、Python3中的输出语句格式为:print(’hello world!’)。

如果输入print ’hello world!’(这是Python2的输出格式)或者printf(‘hello world!’)(这是c语言的输出格式)。

【Notice】:如果输入print(‘hello world’); 可以正常输出,但是Python中的语句不需要使用分号结尾,除非在同一行输入多个语句。

5、Python的其他输入情况【Notice】:hello world是一个字符串,8是一个整型,不能直接用加号连接。

6、什么是脚本语言?7、直接输入5+8与输入print(5+8)有何不同?Class21、tab键的作用:1)缩进2)键入几个字母,按下tab,列出候选字。

2、BIF是built-in functions的缩写。

3、通过命令dir(___builtins__)可以查看各个BIF的名称;通过命令help(BIF)可以查看各个BIF的作用,例如help(print)可以查看print的相关信息。

Class31、【Notice】:third作为first和second的和,并没有随着first的变化而变化。

2、转义字符及原始字符串的使用方法。

打印单引号的办法——只用转移字符,即输入print(“\’”)。

【Notice】:反斜杠也可以对自身进行转义。

原始字符串的使用方法就是在字符串前边追加一个英文字母r即可。

【Notice】:下一例子中的str2=r’c:\program files\fishc\good’’\\’等价于str2=r’c:\program files\fishc\good’+’\\’。

OD使用教程7 - 解密系列【调试篇】

OD使用教程7 - 解密系列【调试篇】
• 接下来的一系列实践会让你掌握这些技巧的!
破解的思路
• 例如jmp eax,无疑是一个直接的跳转。但是我们 知道eax是一个寄存器,对于高级语言的说法它就 是一个变量,里边的值随时可以改变。
• 那么完全可以这样:
– 未注册 -> eax == 004013A0 – 已注册 -> eax == 00401354
• 所以这个例子告诉我们,世界很大,也很邪恶, 坏叔叔很多,他们鬼点子更多,要实现技术的突 破,就要打破传统的思维模式。
OD使用教程7
• 小甲鱼觉得,掌握逆向的思维尤为重要。所以在 咱的OD使用教程中,不单会告诉你怎么去逆向这 个软件,小甲鱼更多想引导大家发挥自己的想象 力,在理解原理的基础上用更多创新的方法实现 突破。(此处应该有掌声)
• 好滴,咱一起来看一下今天的对手,正所谓知己 知彼杀杀杀!
• VisualSite Designer.exe
认识OD的两种断点
– 传说中,有这么一些寄存器,它们只用于调试,我 们称为调试寄存器:Dr0~Dr7
– 其中Dr0~Dr3四个寄存器用来存放中断地址,Dr4、 Dr5保留不使用,Dr6、Dr7用来记录Dr0~Dr3的属性 (如读,写还是执行,单位是字节,字还是双字) 。
–Байду номын сангаас因此,这就解释了为啥硬件断点只有四个,天生不 足哈。
认识OD的两种断点
– 另外还需要提一下的是,内存断点会明显降低OD 的性能,因为OD经常会校对内存。
• 软件断点: – 当我们按下F2设置的断点就是软件断点。 – 设置该断点的原理是在断点处重写代码,插入一个 int3中断指令,当CPU执行到int3指令的时候,OD 就可以获得控制权。
• 硬件断点: – 这个原理跟软件断点不同,硬件断点的可行性依赖 于CPU的物理支持。

小甲鱼课后参考答案

小甲鱼课后参考答案

小甲鱼课后参考答案小甲鱼课后参考答案小甲鱼是一位备受学生喜爱的计算机编程老师,他的课程内容深入浅出,让学生们在轻松愉快的氛围中学习到了许多知识。

然而,学习过程中难免会遇到一些难题,而小甲鱼的课后参考答案则成为了学生们的救命稻草。

在学习编程的过程中,遇到问题是很常见的事情。

不管是语法错误、逻辑错误还是算法实现的困难,学生们都需要找到解决问题的方法。

而小甲鱼的课后参考答案就是一个非常好的资源,它能够帮助学生们理解问题的解决思路,提供参考的代码实现,让学生们能够更好地掌握知识。

小甲鱼的课后参考答案不仅仅是一个简单的答案,它还包含了许多有价值的知识点。

通过仔细阅读参考答案,学生们可以学到更多的编程技巧和经验。

例如,在学习Python编程语言时,小甲鱼的参考答案会涵盖Python的各种语法和常用函数的使用方法。

这样,学生们不仅能够解决当前问题,还能够扩展自己的知识面。

除了提供参考答案,小甲鱼还鼓励学生们自己思考问题并尝试解决。

他常常会在课堂上给出一些思考题,让学生们思考问题的本质和解决方法。

这样一来,学生们在自己尝试解决问题的过程中,不仅能够提高自己的思考能力,还能够加深对知识的理解。

小甲鱼的课后参考答案还有一个重要的作用,那就是帮助学生们进行自我评估。

通过对比自己的解答和参考答案,学生们可以发现自己的不足之处,并且找到改进的方法。

这样一来,学生们不仅能够提高自己的编程水平,还能够培养自我学习和自我提高的能力。

然而,小甲鱼的课后参考答案也存在一些问题。

首先,有些学生可能会过分依赖参考答案,而不去思考问题的本质。

这样一来,他们可能会错过解决问题的乐趣和成长的机会。

其次,小甲鱼的参考答案并不是万能的,它只是给出了一种解决问题的思路和方法,而不是唯一的正确答案。

因此,学生们还需要自己思考和尝试,才能够真正理解和掌握知识。

综上所述,小甲鱼的课后参考答案是学生们学习编程的重要资源之一。

它不仅能够帮助学生们解决问题,还能够提供有价值的知识点和经验。

OD基础知识介绍

OD基础知识介绍

OD基础知识介绍一、概论壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种顾名思义,压缩壳只是为了减小程序体积对资源进行压缩,加密壳是程序输入表等等进行加密保护。

当然加密壳的保护能力要强得多!二、常见脱壳方法预备知识1.PUSHAD (压栈)代表程序的入口点,2.POPAD (出栈)代表程序的出口点,与PUSHAD想对应,一般找到这个OEP就在附近3.OEP:程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP/FOEP),只要我们找到程序真正的OEP,就可以立刻脱壳。

方法一:单步跟踪法1.用OD载入,点“不分析代码!”2.单步向下跟踪F8,实现向下的跳。

也就是说向上的跳不让其实现!(通过F4)3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP6.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入7.一般有很大的跳转(大跨段),比如jmp XXXXXX 或者JE XXXXXX 或者有RETN的一般很快就会到程序的OEP。

Btw:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。

一般情况下可以轻松到达OEP!方法二:ESP定律法ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!)1.开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成红色)。

(这只是一般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)2.在命令行下:dd XXXXXXXX(指在当前代码中的ESP地址,或者是hr XXXXXXXX),按回车!3.选中下断的地址,断点--->硬件访--->WORD断点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



PE文件结构

PE文件结构:
DOS header DOS stub
PE File Header
Image Optional Header Section Table Data Directories Sections

No picture you say a J8„
小结

GetModuleHandleA 这 个 API 函 数 用 于 获 取 程 序 的 ImageBase(基址) 这个程序的 MessageBox 的 OwnerHandle (父窗口句柄) 为 0 ( NULL ),我们可以将这个值改为一个不存在的 值,例如 1 ,这样它就找不到老豆,就不会被显示出 来。 名词注释:
关于cmp指令

cmp指令格式:cmp dest, src cmp 指令比较dest和src 两个操作数,并通过比较结果设置 C/​ O/Z 标志 位。 cmp指令大概有以下几种格式:
cmp eax, ebx ;如果相等,Z标志位置1,否则0. cmp eax, [404000] ;将eax和404000地址处的dword型数据相比较并同上置位。 cmp [404000], eax ;同上。
400085h 404000h
400080h
关于mov指令

mov指令格式:mov dest, src 这是一个很容易理解的指令,mov指令将src的内容拷 贝到dest,mov指令总共有以下几种扩展:
movs/movsb​ /movsw/movsd edi,esi:这些变体按串/字节/字/双字为单位将esi寄存器 指向的数据复制到edi寄存器指向的空间。 movsx符号位扩展,byte->word,word->dword (扩展后高位全用符号位填充),然后 实现mov。 movzx零扩展,byte->word,word->dword(扩展后高位全用0填充),然后实现mov。
EAX:扩展累加寄存器
EBX:扩展基址寄存器
ECX:扩展计数寄存器 EDX:扩展数据寄存器 ESI:扩展来源寄存器 EDI:扩展目标寄存器
关于CALL指令

很多朋友都问过如何“找CALL”,但很遗憾,从没有朋友问过为什么 要“找CALL”。 call XXX; 等于 push eip; 然后 jmp XXX; call有以下几种方式:
加载目标文件调试

设置OllyDbg中断在程序的入口点。 名词注释
System breakpoint: 系 统 断 点 , OllyDbg 用 CreateProcessA 加 载

DEBUG_ONLY_THIS_PROCESS参数执行,程序运行之后会触发一个INT13,在
系统空间里。 Entry point of main module:主模块的入口点,即文件的入口点。
OD基本快捷键及功能
F2 F3 F4 F5 F7 下断点,也就是指定断点的地址 加载一个可执行程序,进行调试分析 程序执行到光标处 缩小、还原当前窗口 单步步入
F8
F9 Ctrl+F2 Ctrl+F9 Alt+F9 Ctrl+G
单步步过
直接运行程序,遇到断点处,程序暂停 重新运行程序到起始处,一般用于重新调试程序 执行到函数返回处,用于跳出函数实现 执行到用户代码处,用于快速跳出系统函数 输入十六进制地址,快速定位到该地址处

(HINSTTSTR DLGPROC IPDialogFunc,
HWND CreateDialogParam IpTemplateName, HWND LPARAM dwlniParam);
(HINSTANCE hWndParent,
hlnstancem, LPCTSTR DLGPROCIpDialogFunc,
VA(VirtualAddress,虚拟地址) RVA(RelativeVirtualAddress,相对虚拟地址) EP(EntryPoint,程序入口点)


关于SEH

SEH(Structured Exception Handling),即结构化异常处理。 SEH是Windows操作系统提供的功能,跟开发工具无关。 Windows程序设计中最重要的理念就是消息传递,事件驱动。当GUI应 用程序触发一个消息时,系统将把该消息放入消息队列,然后去查找 并调用窗体的消息处理函数(CALLBACK),传递的参数当然就是这个消 息。


关于SEH

我们同样可以把异常也当作是一种消息,应用程序发生异常时就触发 了该消息并告知系统。系统接收后同样会找它的“回调函数”,也就 是我们的异常处理例程。

当然,如果我们在程序中没有做异常处理的话,系统也不会置之不理, 它将弹出我们常见的应用程序错误框,然后结束该程序。所以,当我 们改变思维方式,以CALLBACK 的思想来看待 SEH,SEH 将不再神秘。
OD使用教程18

创建模态对话框是由调用 DialogBoxParam 函数实现的,而创建非模 态对话框是调用CreateDialogParam函数实现。 它们的原型分别是: HWND DialogBoxParam IpTemplateName, HWND LPARAM dwlnitParam);
call 404000h ;直接跳到函数或过程的地址 call eax ;函数或过程地址存放在eax call dword ptr [eax]


eax 400080h
400080h 404000h
关于CALL
call dword ptr [eax+5]
eax
call dword ptr [<&API>] ;执行一个系统API



关于条件跳转指令

条件跳转指令,就是根据各种不同标志位的条件判断是否成立,条件 成立则跳转。

No picture you say a j8„
patch

patch也就是我们平时所说的补丁。 所谓给程序打补丁就是我们对程序破解所进行的修改,就是说像我们 衣服破了,如果没有打补丁,就会走光的意思。 OllyDBG的“/”可以查看所有打过的补丁。


GetWindowTextA(GetWindowTextW)
调试技巧总结

7.一般我们要结合经验通过猜测的方式多尝试几遍设 陷阱,找出相关的函数。 8.按“Ctrl+G”键打开跟随表达式的窗口。 9. 也可以通过“ Ctrl+N ”键打开应用程序的导入表 (输入表),然后查看应用程序总共导入了哪些函数 来以此推断需要在哪里挖坑下陷阱! 10.关于返回值,汇编代码的返回值约定是存放在eax 这个寄存器里边的,如果 32 位的 eax 不够存放返回值, 系统会将返回值放在内存某个位置并把该位置的地址 放在eax返回。


调试技巧总结

4.所谓领空,实际上就是指在某一时刻,CPU执行的指令所在的某段 代码的所有者。 5.如004013F7这类地址一般是可执行文件领空,7C8114AB这类大地址 一般是系统DLL所在的地址空间。 6.程序通常读取文本框内容的字符串用的是以下两个函数:
GetDlgItemTextA(GetDlgItemTextW)


标志位

在逆向中,你真正需要关心的标志位只有三个,也就是cmp指令能修 改的那三个:Z/O/C。
Z标志位(0标志),这个标志位是最常用的,运算结果为0时候,Z标志位置1,否则置 0。 O标志位(溢出标志),在运行过程中,如操作数超出了机器能表示的范围则称为溢出, 此时OF位置1,否则置0。 C标志位(进位标志),记录运算时从最高有效位产生的进位值。例如执行加法指令时, 最高有效位有进位时置1,否则置0。
逻辑运算
关于test指令

test指令格式:test dest, src 这个指令和 and指令一样,对两个操作数进行按位的‘与’运算,唯 一不同之处是不将‘与’的结果保存到dest。 即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后, 对标志位重新置位。 小甲鱼很负责任地告诉大家该指令的实战形态百分之九十九是酱紫: test eax, eax(如果eax的值为0,则Z标志位置1)


关于寄存器

寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西 来使用。今天的程序中我们涉及到九个寄存器:
EAX:扩展累加寄存器
EBX:扩展基址寄存器
ECX:扩展计数寄存器 EDX:扩展数据寄存器 ESI:扩展来源寄存器 EDI:扩展目标寄存器
关于寄存器

寄存器就好比是CPU身上的口袋,方便CPU随时从里边拿出需要的东西 来使用。今天的程序中我们涉及到九个寄存器:
WinMain:程序的WinMain()函数入口点。
加载目标文件调试

1. 虚拟地址 : 一般情况下,同一程序的同一条指令在 不同系统环境下此值相同。


2.机器码:这就是CPU执行的机器代码。
3.汇编指令:和机器码对应的程序代码。
调试技巧总结

1.F2 下断点,Alt+b 打开断点编辑器,可编辑所有下过的断点,空格 键可快速切换断点状态。 2.当位于某个CALL中,这时想返回到调用这个CALL的地方时,可以按 “Ctrl+F9”快捷键执行返回功能。这样OD就会停在遇到的第一个返 回命令(如RET、RETF或IRET)。 3.如果跟进系统DLL提供的API函数中,此时想返回到应用程序领空里, 可以按快捷键“Alt+F9”执行返回到用户代码命令。
VB破解的关键

针对变量:
• 针对字符串:
__vbaStrCmp __vbaStrComp __vbaStrCompVar __vbaStrLike __vbaStrTextComp __vbaStrTextLike
相关文档
最新文档