小甲鱼OD学习第12讲】的更多相关文章

这次我们的任务是破解这个需要特定的注册码的软件,如下图 我们从字符串入手,输入register,搜索 我们点击    查找下一个,看看有什么有用的字符串,如下图 然后,在下方,我们发现了  Registration Key accepted!  字符串,下断点! 观察断点处的程序 我们一直往上拉,看看这个程序,这个时候我们看到了   004A51D6  RETN, 于是我们在这行代码的下方随便一个地方尝试下断点,如下图 当程序运行到004A5461 call Teksched 0040A070…
这一讲我们的目标是修改Hello.exe对话框的标题和内容,如图所示 把程序放进OD,按F8一步步运行,直到程序弹出对话框为止,然后在弹出对话框位置处下断点 按Ctrl+F2重新载入程序,然后按F9直接运行到断点处 按F7进入断点里面,最后,成功看到Title和Text的位置 在下面数据处直接修改字符串…
这次我们的任务是破解这个通讯录的软件,首先,我们在通讯录一个分组添加第5个人,发现弹出对话框,限制每组只能添加4个人 并且发现最多只能添加3个分组 我们把程序载入OD,运行,添加人,这个时候点击暂停,然后按下ALT+F9,然后一路按F8执行程序 然后到了如下图片的场景,发现了一句cmp eax,4 ,我们可以推测这就是判断是否破解的关键点 然后我们把地址为00412DD3的语句JL SHORT Pixtopia.00412DEF改为JMP SHORT Pixtopia.00412DEF,并且保存…
这次我们的任务是破解这个有日期限制的软件 我们可以看到,这个一个有日期限制的软件,如图所示 首先,我们把程序载入OD,我们从字符串搜索入手,选择  所有参考文本字串,如图 我们输入相应的字符串尝试搜索 把搜索到的字符串下断点 下了断点后的程序,如图 通过尝试,我们可以发现,只要把地址为 005CC828 的代码的JNZ修改成JMP,也就是绝对跳转,可以成功修改程序,但是我们可以有更好的修改方法,通过观察,我们可以发现, 只要修改[60EB8C]的值为不为0,也是同样可以让JNZ实现跳转的功能 因…
这次我们的任务是破解这个要注册的软件,如下图所示 当我们输入账号密码的时候,它会提示输入的账号密码是无效的,如下图 我们把程序载入OD,然后在查找字符串那里输入提示的无效账号密码的字符串,如下图 然后下断点 然后运行程序,然后点击注册按钮,我们来到了如下图所示的地方,经过观察,我们可以发现,这个软件是否成功注册取决于地址4299B5 的代码test al,al 于是我们在这行代码的前一个call MrBills.0040714C下断点,如下图所示 再次运行程序,点击注册按钮,然后在断点  004…
这次我们的任务是让我们输入任意用户名密码判断正确 我们输入fishc和111111,显示错误 我们猜测这是用GetDlgItemTextW来收集账号密码的输入值 我们找到了两个函数,给这两个函数都下断点 重新点击"check"按钮,然后一路按F8,发现看到了我们输入的账号,结果如图所示 现在又看到了我们输入的密码,如图所示 这个时候我们可以得知"JE SHORT TraceMe.0040122E"这条语句是判断账号密码是否正确的语句,因此我们尝试着把Z标志位修改试试…
这次我们的任务是破解这个过期的软件,效果如图所示 我们通过阅读代码,知道这个程序的执行流程如图中注释所示 观看下图注释所示 这是失败的提示代码 这是成功的提示代码 最后我们可以得出结论,成功破解软件的方法是创建一个名为 "Keyfile.dat"的文件,里面写上16个"G"字符 最后尝试结果如图所示,破解成功 欢迎大家多多评论,如果有什么建议,请多多提出!!!…
这次我们任务是破解这个有日期限制的软件,效果如图所示 我们一边下断点一边调试哪里是NAG窗口的程序,最终我们发现在地址 00489912  处的代码是NAG窗口的代码 通过观察我们把004898E1处的代码改为JMP VisualSi.00489A29,如图所示 用 所有修改 保存,如图所示 运行新的保存的程序,发现去掉了一个NAG窗口 这次,我们要去除第二个NAG窗口,如图所示,显示NAG窗口的时候,我们点击  暂停,然后点击 K 这时,显示我们调用过的API函数,我们看到了调用地址来自 Vi…
这次我们的任务是破解这个需要注册的软件,如下图所示 我们这次从字符串入手,我们查找 unregistered  字符串 然后我们在如下图的字符串下断点 然后我们来到断点处,我们观察到 地址为 004046E0  的程序,mov al,byte ptr ss:[esp+0x4],我们发现,这个al决定了软件是否破解 于是我们查找调用这行代码的源头,并且在源头那里都下断点 这个时候,我们发现地址为  004047D2 push eax和004047CD  call fjproduc.00404640…
这次我们的任务是破解这个需要注册码的软件,如下图所示 我们搜索上图相应的提示字符串,看看能找到什么线索,我们搜索  invalid  code  试试看,如下图 然后下断点,如下图所示 我们来到断点处的代码,如下图 观察代码,发现0041749C  JNZ SHORT XoftSpy.004174E3  能跳转到相应的成功注册的提示信息,如下图 我们干脆把代码改为 jmp  SHORT XoftSpy.004174E3,看看效果,如下图 用所欲修改保存,运行程序并且注册,发现提示成功,如下图 但…
1.for循环的使用,注意下面代码的区别 for i in range(0,10,2): print("i love you") for i in range(0,10): print("i love you") for i in range(5): print("i love you") 2.break与continue的区别 for i in range(5): if i == 2: break print(i) for i in range…
任务:将文件(record.txt)中的数据进行分割,并安装以下规则保存起来.  1.小甲鱼的对话单独保存为boy_*.txt的文件(去掉"小甲鱼:")  2.小客服的对话单独保存为girl_*.txt的文件(去掉"小客服:")  3.文件中总共有三段对话,分别保存为boy_1.txt.boy_2.txt.boy_3.txt.gilr_1.txt.gilr_2.txt.gilr_3.txt      共6个文件.(提示:不同的对话已经使用"====&quo…
一 isdigit()True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字False: 汉字数字Error: 无 isdecimal()True: Unicode数字,,全角数字(双字节)False: 罗马数字,汉字数字Error: byte数字(单字节) isnumeric()True: Unicode数字,全角数字(双字节),罗马数字,汉字数字False: 无Error: byte数字(单字节) 二.and.or python 中的and从左到右计算表达式,若…
1.assert的作用. assert用来判断语句的真假,如果为假的话将触发AssertionError错误. 如果为真则继续执行. 2.变量互换(注意顺序) 3.成员资格运算符(in) 4.分数的划分 score = int(input("请输入分数:")) < score <= : print("A") elif < score <= : print("B") elif < score <= : print…
1.修改列表里的值 list1 = [,,[,,,[,,,,] list1[] = print(list1) list1[][][] = '?' print(list1) 2.列表的排序(sort) list2 = [,,,,,,,] list2.sort() print(list2) 3.列表的逆序排序(sort  reverse) list3 = [,,,,,,,,] list3.sort() list3.reverse() print(list3) 4.copy与clear的用法 list…
1.list1[0]与list1[0:1]的区别 2.分片的步长 3关于列表的copy(注意list2与list3的区别) list1 = [,,,,,,] list2 = list1[:] list3 = list1 print(list1) print(list2) print(list3) list1.sort() print(list1) print(list2) print(list3)…
手动编译并执行第一个汇编程序过程: 1.用notepad++写一个简单的汇编程序(文件命名为:1.asm): assume cs:abc abc segment mov ax, 2 add ax, ax add ax, ax mov ax, 4c00H int 21H abc ends end 2.在非系统盘以外的任意一个盘新建目录(如:test), 将1.asm放入该文件夹下,下载masm 5.0压缩包,将里面MASM.EXE和LINK.EXE放到该test目录下. 3.如果当前电脑是64位的…
1.8086CPU不支持将数据直接送入段寄存器,需要按照下面方式:数据——>通用寄存器——>段寄存器. 2.mov指令的几种形式: mov 寄存器,数据 mov 寄存器,寄存器 mov 寄存器,内存单元        mov ax,[0]   将段地址为DS,偏移地址为0的数据存到ax寄存器里. mov 内存单元,寄存器 mov [0],ax 将ax寄存器里的数据存储到段地址为DS,偏移地址为0的内存地址. mov 段寄存器,寄存器 mov 寄存器,段寄存器 3.mov.add.sub是具有两…
1.计算机CPU由如下三部分组成(如下图):运算器.控制器.寄存器. 2.寄存器:简单说,就是用来存储数据的器件,类似内存,不过这个是CPU专用,跟内存不一样. 8086CPU里,寄存器总共有14个,且都是16位. 即 AX,BX,CX,DX,SP,BP,SI,DI,IP,FLAG,CS,DS,SS,ES 共 14 个. 这 14 个寄存器按照一定方式又分为了通用寄存器,控制寄存器和段寄存器. 通用寄存器:AX,BX,CX,DX,SP,BP,SI,DI 控制寄存器:IP,FLAG 段寄存器: C…
001讲 0. Python 是什么类型的语言? Python是脚本语言以简单的方式快速完成某些复杂的事情通常是创造脚本语言的重要原则. 特性: 语法和结构通常比较简单 学习和使用通常比较简单 通常以容易修改程序的“解释”作为运行方式,而不需要“编译” 程序的开发产能优于运行性能 一个脚本可以使得本来要用键盘进行的相互式操作自动化.一个Shell脚本主要由原本需要在命令行输入的命令组成,或在一个文本编辑器中,用户可以使用脚本来把一些常用的操作组合成一组串行.主要用来书写这种脚本的语言叫做脚本语言…
前文链接:狗屁不通的“视频专辑:零基础学习C语言(小甲鱼版)”(1) 小甲鱼在很多情况下是跟着谭浩强鹦鹉学舌,所以谭浩强书中的很多错误他又重复了一次.这样,加上他自己的错误,错谬之处难以胜数. 由于拙著<品悟C>已经全面揭露了谭浩强书中的种种错谬,因此,下面视频中凡是谭浩强原来就有的错误,就只标出不细解了.重点讲小甲鱼自己创造的“亮点”.各位网友如对只标出而未解释的地方有疑问,可在评论中提出,我再详细解释. 下面截图来自“视频专辑:零基础学习C语言(小甲鱼版)”第二集.从这一集我们可以清楚地看…
1.下载并安装Python 3.5.0 Python是一个跨平台语言,Python从3.0的版本的语法很多不兼容2版本,官网找到最新的版本并下载:http://www.python.org 2.IDLE使用与print 安装完成Python后,在安装程序中找到IDLE打开即可. IDLE是一个Python Shell,也就是说是一个通过键入文本与程序交互的途径. >>>是提示符 在Python的语法中: # 开始的是注释  不用分号表示语句的结束 例: 打印输出 I love Pytho…
[小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.EasyGui 6.类.对象.魔法方法 7.模块 8.爬虫 本文的目的:做好作业,加强python的应用:同时通过作业来加强python的复习和记忆.所有的作业都从这个入口进入 1.基础部分的作业 [课后作业] 第001讲:我和Python的第一次亲密接触 | 课后测试题及答案 [课后作业] 第002讲:用…
时序分析中的基本概念和术语 Basic concept and Terminology of Timing Analysis 原文标题及网址: [时序约束学习笔记1]Vivado入门与提高--第12讲 时序分析中的基本概念和术语-七夜浮生-电子技术应用-AET-北大中文核心期刊-最丰富的电子设计资源平台http://blog.chinaaet.com/yuwoo/p/5100017294 最近正在学习Vivado时序约束这块的东西,上周六Xilinx的官方培训老师讲了一天,听的是云里雾里的,发现…
[Python教程]<零基础入门学习Python>(小甲鱼) 讲解通俗易懂,诙谐. 哈哈哈. https://www.bilibili.com/video/av27789609…
1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个元素添加到列表的结尾) list1 = ['我爱你','i love you',1314] print(list1) list1.append(['forever','just you']) print(list1) extend  (将参数作为一个列表添加到列表的结尾) list1 = [']pr…
测试题: 0. __name__属性指的是在调用该模块的时候调用的函数名称,方便在模块的被调用的时候,模块内部被调用的函数不会被运行. 1. 当模块作为主程序运行的时候,__name__属性的值是“__main__”,当该模块被调用导入到另一个模块的时候,"__name__"属性值为模块名称. 2. 通过sys模块的path变量显示搜索路径: import sys sys.path 3. 将相关模块文件的路径加入到搜索路径中,例如: import sys sys.path.append…
temp = input('不妨想一想小甲鱼现在心里想的哪一个数字:') guess = int(temp) if guess == 8: print('你是小甲鱼心里的蛔虫吗?') print('哼,猜中了也没有奖励!') else: if guess > 8: print('哥,大了大了...') else: print('嘿,小了小了...') print('猜错啦!不玩啦!小家与心里想的是8!') print("游戏结束,不玩啦:-D") temp = input('不妨…
今天有一个朋友发短消息问我说“老师,为什么PE的格式要讲的这么这么细,这可不是一般的系哦”.其实之所以将PE结构放在解密系列继基础篇之后讲并且尽可能细致的讲,不是因为小甲鱼没事找事做,主要原因是因为PE结构非常重要,再说做这个课件的确是很费神的事哈.在这里再次强调一下,只要是windows操作程序,其就要遵循PE格式,再说人家看雪的网址就是www.pediy.com. 简单的讲是可以,但是怕就怕有些朋友知识点遗漏了或者错误理解意思.不能深刻体会等,这样的效果是不好的~所以,小甲鱼尽管这系列视频可…
翻译改编自官方文档:http://easygui.sourceforge.net/tutorial/index.html 翻译改编者:小甲鱼,本文欢迎转载,转载请保证原文的完整性! 演示使用 Python 3.3.3 版本 0. 安装 EasyGui 官网:http://easygui.sourceforge.net 最新版: easygui-0.96.zip 使用标准方法安装: 使用命令窗口切换到easygui-docs-0.96的目录下 [Windows下]执行C:\Python33\pyt…