- 博客(18)
- 收藏
- 关注
原创 0x05 【OD动态调试学习】 破解 PC Surgeon
一个论坛上的例子,主要就是找字符串加断点,练习OD的调试技巧很不错。就是这么丑的一个软件。点进去,首先应该logo(丑)。然后正式界面。主要到上面的那个 。打开OD,载入,然后右键,选择 Search for --> All referenced text strings.拉到最上面,右键 ---> Search for text 找到后双击,
2016-04-16 22:48:11 1752
原创 0x04 调试加分析 reverseMe.exe
之前的那个都是暴力的破解,今天学习了下基本32汇编,之前弄过16位汇编,所以看起来问题不大。该连续程序是看雪论坛的一个程序,百度就可以搜索到。首先按F8一步一步往下执行,到这里很明显这里是调用了CreateFile这个函数,查看win32文档可以知道这里是打开Keyfile.dat这个文件,并且是这个文件必须存在,并且没有给出这个文件的路径(第一行的那个NULL)。这样就知道必须要有一
2016-04-15 16:15:23 1294
转载 0x03 一些汇编相关的小知识
cmp指令用于比较dest和src两个操作数,并通过比较之后的结果设置C/O/Z标志位cmp eax,ebx ;如果相等,Z标志位1,否则为0cmp eax,[404000] ;将eax和404000的dword数据比较并置位.cmp能修改的三个位:Z:运算结果为0则该位置1O:溢出则该位置1C:进位标志位,有进位就置1test test dest,src和
2016-04-15 14:59:31 919
原创 0x02 开始操作
通常,在破解windows程序过程中比较重要的就是寻找一些重要API的位置,在验证序列号的时候•程序通常读取文本框内容的字符串用的是以下两个函数:–GetDlgItemTextA(GetDlgItemTextW)–GetWindowTextA(GetWindowTextW)只要找到输入框的位置,然后往下就能猜测到一般就是验证输入信息是否正确了,在这里就是一个调用读取
2016-04-15 11:08:50 2342
原创 0x01 PE文件结构学习总结
主要是自己学习PE结构时候的一些琐事事情,没有什么具体的详解,参考了许多文档查出来这些,自己记不住,稍微记录一下。
2016-04-13 16:20:17 584
原创 x86汇编--(九)打印整型数据
assume cs:codesg,ds:datasg,ss:stackdatasg segment dw 12666,1,8,3,38datasg endsstack segment dw 64 dup(0)stack endscodesg segmentstart: mov ax,datasg mov ds,ax mov si,0 ;ds:si指向字符串的首地址 m
2016-04-11 14:25:39 956
原创 x86汇编--(八)指定位置打印字符串(七改)
;之前那个题目看错了,原来时要在8行3列这个地方打印字符串;0 0写了几个小时的成果- - (╯-_-)╯╧╧ 晕死assume cs:codesg,ds:datasg,ss:stackdatasg segment db 'Welcome to masm! ',0datasg endsstack segment dw 64 dup(0)stack endscodesg se
2016-04-09 22:34:15 1507
原创 x86汇编--(七)高仿for循环嵌套打印字符串
;看书看到一个题目:编写一个子函数,打印8行3列的字符串,数据域已经给出;0 0写了几个小时的成果- - (╯-_-)╯╧╧ 晕死assume cs:codesg,ds:datasg,ss:stackdatasg segment db 'Welcome to masm! ',0datasg endsstack segment dw 64 dup(0)stack endsco
2016-04-09 01:22:09 727
原创 x86汇编--(七)仿高级语言之for循环嵌套打印字符串
看书看到一个题目:编写一个子函数,打印8行3列的字符串,数据域已经给出0 0写了几个小时的成果- - (╯-_-)╯╧╧ 晕死assume cs:codesg,ds:datasg,ss:stackdatasg segment db 'Welcome to masm! ',0datasg endsstack segment dw 64 dup(0)stack en
2016-04-09 01:11:26 784
原创 x86汇编--(六)一些指令的小结
offset 取得标号出的地址jmp short [] 对应机器指令没有包括目的地址,而是通过记录当前jmp指令结束位置到指定跳转位置的偏移地址,在编译程序的时候被算出转移短指令:8位偏移最多向前跳转128,向后跳转127jmp near ptr []16位偏移jmp far ptr []对应指令包括了目的地址,jmp word ptr [] 内存单元地址 段内跳转
2016-04-06 22:12:28 933
原创 x86汇编--(五)定位内存+栈的巧妙应用 温故知新
之前都是靠ds:[bx]或者[bx]来直接定位内存的之后知道了SI和DI这两个寄存器,这样定位内存的方法就更加灵活了SI和DI是与bx功能差不多只是不能像BX一样拆分成bl和bh同时,还有这样的方式:mov ax,ds:[bx+idata]idata是一个数,可以自己来定,这种用法在程序中是否有用,如下assume cs:codesg,ds:datasgdatasg seg
2016-04-04 11:27:04 757
原创 x86汇编--(四)新的世界 字符转换技巧
dw: define word 例如 dw 0,1,2,3,4db: define bite 例如 db 'linux'
2016-04-03 22:31:12 450
原创 x86汇编--(三)代码段相关 -- dw
dw 即 define word 定义字节型数据如下 计算0123h, 0456h, 0789h,0abch,0defh,0cbah,0987h的和assume cs:codecode segment dw 0123h, 0456h, 0789h,0abch,0111h,0fedh,0cbah,0987h mov ax,0 mov bx,0; s: add ax,cs:[b
2016-03-30 22:58:23 865
原创 x86汇编--(二)loop小复习
过了几天没碰汇编就生疏了,出了很多问题。特别是在ml的时候提示immediate operand not allowed.当前操作数无法载入。找了半天才发现结尾的 int,21H写成了inc,21H.程序主要实现了把内存的一段连续空间的8位8位的数求和。由于到内存取数的时候要求把8位的数存在寄存器的某8位,而且还要溢出的时候能够把溢出的数存在16位寄存器的高位才正确,所以程序设计把
2016-03-29 01:13:45 1090
原创 x86汇编--(一)寄存器功能、寻址方式、伪指令总结
;看视频的初学汇编的不算小结的小结,容易忘AX: 普通功能寄存器BX: 普通功能寄存器 [BX]: masm编译器中用于 代替debug中的偏移地址DS: 内存基地址[BX]: 偏移地址CX: 普通功能寄存器 设置loop循环的次数CS: 程序执行基地址IP:
2016-03-25 22:29:00 2027
原创 shell学习(照着抄)-日期天数计算
0 0 第一次写博客,记录下学校鸟哥linux的经历。需求分析输入军人的退伍日期,计算还有几天退伍思路:首先用read读入退伍日期(开始想以20xx-xx-xx的格式,发现这样比较麻烦,看鸟叔的书直接20xxxxxx然后利用date里的 --date选项即可直接计算从1970到该日期的秒数 QAQ)然后把现在距离1970的秒数和这个相减,再/60/60/24就行了。=_=#!/bin/
2016-03-12 11:38:18 876
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人