od

read a .bmp image using od command

南楼画角 提交于 2019-12-11 14:53:03
问题 I have an image (grayscale image .bmp) . that I am trying to read.So, I used the imread() function using matlab and python and I get the same results. the image /* with Matlab */ 109 107 104 101 96 91 87 84 76 75 75 77 78 80 80 80 81 78 77 75 74 72 68 68 69 71 72 73 75 76 77 78 73 73 72 70 69 68 67 67 67 68 69 71 72 74 75 76 ... /* with python in an rgb form */ [[[109 109 109] [107 107 107] [104 104 104] .... you can see that it is the same interpretation. But when I use the following command

华为od面试算法题

∥☆過路亽.° 提交于 2019-12-10 11:04:38
Jeffrey Shao(同事的面试题) 以下均来自回忆,仅供参考。 机试题: 题目: 统计参加聚会,每个小时的人数,聚会从12点至20点。 输入: 每行包括两个整数,第一整数是参加聚会的时间,第二个整数是离开聚会的时间,例如 12,15 ,不包含15,意味着[12,15),以 -1,-1 结束输入 输出: 例如: [12,13):3 测试用例: 输入: 12,16 13,15 18,20 12,20 -1,-1 输出: [12,13):2 [13,14):3 [14,15):3 [15,16):3 [16,17):2 [17,18):2 [18,19):2 [19,20):2 我一开始的思路是用一个数据结构来保存每个人进出的时间,遍历每个人的进出时间,发现这个而操作太繁琐。 转念一想,对每个人进出的时间琢磨了一下,不如用一个数组记录每个小时的人数,例如输入 12,16 #include<iostream> #include<stdio.h> using namespace std; int main() { int a, b; int record[30] = { 0 }; while (scanf("%d,%d",&a,&b)) { if (a == -1 || b == -1) return; for (int i = a; i < b; i++) { record[i]++

SX1278与STM8L的精美结合。

爷,独闯天下 提交于 2019-12-09 04:53:05
转发请注重原创出处,谢谢! 一. 引言 能耗对于电池供电的产品来说是一个重大的问题,一旦电能耗尽设备将“罢工”,在某些场合电能意味着电子产品的生命。物联网时代将会有越来越多电池供电的设备通过无线通信连接,降低能耗再次摆在工程师的桌面上—解决它。不但具备空旷环境传输5km的超长距离优势,还将休眠能耗降低到极致(0.4uA,带RTC为1.4uA)。我们是怎么做到的呢?接下来,一步一步解密。 二. 硬件设计 1. 选用低功耗器件 终端MCU选用STM8L151C8T6,它属于超低功耗,不带RTC休眠为400nA,带RTC下休眠为1.4uA。该MCU拥有较大的RAM(4KB)和自带EEPROM(2KB),不用扩展外部存储设备,进行一步降低功耗和成本。 终端射频芯片选用SX1278,在休眠模式下,该芯片功耗低至忽略不计。 2. 尽可能快地让射频模块休眠 SX1278属于LoRa TM扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率(那将消耗更多电能)。该射频芯片的电流消耗如下:休眠<0.2uA,空闲=1.6mA,接收=12mA,发射(最大功率)=120mA. 终端MCU通过“中断+定时器超时”方式控制SX1278,一旦射频完成发送或接收,立即进入休眠模式。 第一: 虽然MCU是停机了,但是电路板还有其他的芯片在工作,它们仍然在消耗电量,所以我们在停机前应该要把其他芯片给关闭

正则表达式常用示例

五迷三道 提交于 2019-12-06 22:38:30
import re """ 使用match方法进行匹配 result = re.match(正则表达式,要匹配的字符串) 如果match匹配到数据的话,就可以使用group方法提取数据 注: 若字符串匹配正则表达式,则match方法返回匹配对象(Match Object), 否则返回None(不是空字符串) match方法是从左到右匹配(因为match的这种特性,所以 ^ 从字符串头开始匹配 可以不用写),匹配到不一样的地方,match方法就结束! """ """ . :匹配任意一个字符,\n除外 [] :匹配[]中列举的字符 \d : 数字,即0~9 \D : 非数字 \s : 空白字符,包括空格, \n , \t ,\r, 回车换行 \S :非空白字符 \w :单词,(可以看成是校验python变量名,实际两者没有任何关系,a~z , A~Z, 0~9 , _ ) \W : 非单词字符 """ In [1]: import re In [2]: re.match('admin','good.admin') In [3]: re.match('.+','good.admin') Out[3]: <re.Match object; span=(0, 10), match='good.admin'> In [4]: re.match('.','good.admin') Out[4]:

如何让字典保持有序

亡梦爱人 提交于 2019-12-04 21:17:56
使用标准库collections中的OrderedDict 以OrderedDict替代内置字典Dict,依次将选手成绩存入OrderedDict from collections import OrderedDict od = OrderedDict() od['c'] = 1 od['b'] = 2 od['a'] = 3 list(iter(od)) 执行结果: ['c', 'b', 'a'] from collections import OrderedDict od = OrderedDict() # 制造数据 players = list('abcdefgh') from random import shuffle shuffle(players) #洗牌函数,将列表打乱 for i, p in enumerate(players, 1): od[p] = i def query_by_name(d, name): return d[name] query_by_name(od, 'e') #查询e的名次 from itertools import islice #为可迭代对象制作切片 def query_by_order(d, a, b = None): a -= 1 if b is None: b = a + 1 return list(islice(od, a,

OD点击寄存器变色OD

匿名 (未验证) 提交于 2019-12-03 00:32:02
分享一个OD,个人感觉还是很稳定的.最近看到好多人在找一个比较好用的OD,主要是是单击要寻找的寄存器能高亮显示,在网上搜的大多OD没有这个功能,单独下载插件又有可能跟版本不匹配.我用的这个OD是朋友给我的.感觉很好用就一直在用着,上图为证 https://download.csdn.net/download/ld1990312/10486966 文章来源: OD点击寄存器变色OD

无序字典和有序字典

匿名 (未验证) 提交于 2019-12-02 23:52:01
from collections import OrderedDict from collections import OrderedDict OrderedDict就是一个类 需要需用 先进行 实例化 od = OrderedDict()然后和字典的用法是一样的 from collections import OrderedDictod = OrderedDict()od['k1'] = 'v1'od['k2'] = 'v2'od['k3'] = 'v3'for k, v in od.items(): print('k={},v={}'.format(k, v)) 显示的结果就是 k=k1,v=v1 k=k2,v=v2 k=k3,v=v3 这就是有序字典了 有序字典就是按照插入数据的顺序输出的我的应用场景 是对一级菜单排序 from collections import OrderedDict @register.inclusion_tag('menu.html') def menu(request): od = OrderedDict() menu_dict = request.session.get(settings.MENU_SESSION_KEY) # url = request.path_info # for i in menu_list: # if re.match

nspack脱壳(手动,esp法)

江枫思渺然 提交于 2019-11-28 19:49:28
1.查壳,直接丢查壳工具就可以查看,进行重定位已分离(不知道的可以看我上一篇文章https://mp.csdn.net/mdeditor/100102533#) 2.用od打开,可以发现pushfd和pushad,f8单步执行两下,在右边选中esp,下硬件断点 3.f9执行到硬件断点,此时可以看到popfd和下面一个jmp,先f8一次 4.再f8一次,可以看到代码被od误解析成数据,此时,ctr+a,可以看到如下代码界面 5.回车进入这个call,发现其有很明显的四个call,这是主函数前的安全函数常调用的call 6.esc回到call之前,下面的jmp就是跳像oep,此时需要先把硬件断点取消掉,不然f8过不去,会先遇到硬件断点。(方法:od右上角有一栏,点击其中原点那个图标,就可以看到硬件断点了) 7.f8两次,调到oep 8.使用od自带的工具脱壳,右键—使用od脱壳调试教程—取消勾选重建输入表—随便取个名字保存—od别关 9.打开import reconstructor,附加一个活动进程—选中od正在调试的程序 10.将刚刚的地址复制到oep栏,按下图顺序操作 11.修正转储,选中od刚才dump出来的程序,打开,就可以生成脱壳后的程序 12.打开dump好的123_.exe,发现能运行,用查壳工具,壳不见了(因为工具原因,peid显示还有壳,die显示没有壳了) 13

C++写壳之高级篇

梦想与她 提交于 2019-11-28 03:49:23
来源: https://bbs.pediy.com/thread-251267.htm 看雪论坛 作者:九阳道人 之前在写了写壳基础篇,现在就来完成写壳高级篇。没有基础篇的知识,那理解高级篇就比较困难。有了写壳基础后,才能在其基础上逐步实现高级功能,加壳的目的主要是防止别人破解,而想要别人很难破解,我认为要在花指令、混淆和指令虚拟化上大量的时间及脑力才能做到,这个比较费脑力费时间。我在此就说说一些能快速入门的反调试技术,下面说的难度将逐渐提升。 主要工具: VS2017、x64dbg、OD 实验平台:win10 64位 实现功能:反调试、IAT加密、Hash加密、动态解密。 一、反调试 顾名思义,就是阻止别人调试程序,在PEB结构中有一个BegingDebugged标志位专门用于检测是否处于调试状态,为1则处于调试状态,用VS2017测试下列程序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 #include "pch.h" #include <iostream> #include <windows.h> / / 反调试 1 bool PEB_BegingDebugged() { bool BegingDebugged = false; __asm { mov eax, fs:[

Map文件从IDA到OD

旧巷老猫 提交于 2019-11-27 19:23:01
目录 什么是map文件 IDA与OD导出使用map文件 注意事项 使用OD载入导出的map文件 什么是map文件 什么是 MAP 文件? 简单地讲, MAP 文件是程序的全局符号、源文件和代码行号信息的唯一的文本表示方法,它可以在任何地方、任何时候使用,不需要有额外的程序进行支持。而且,这是唯一能找出程序崩溃的地方的救星。 在逆向分析的时候IDA可疑获得比较详细的map文件信息,同时结合OD动态调试将IDA中分析出的map文件导入到OD中可以起到事半功倍的效果。 IDA与OD导出使用map文件 ) 注意事项 使用IDA导出map文件时,在不需要Label信息的情况下,不要选中"dummy names"选项,否则在Ollydbg中使用LoadMapEx(by forever)加载时,会将OD的注释替换掉 对于 dummy names,IDA帮助中的解释是这样: Dummy names are automatically generated by IDA. They are used to denote subroutines, program locations and data. 假名字被艾达自动生成。他们是用来表示子程序、程序的位置和数据。 Dummy names have various prefixes depending on the item type and value