首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
ida怎么看DllMain
2024-09-05
恶意代码分析实战四:IDA Pro神器的使用
目录 恶意代码分析实战四:IDA Pro神器的使用 实验: 题目1:利用IDA Pro分析dll的入口点并显示地址 空格切换文本视图: 带地址显示图形界面 题目2:IDA Pro导入表窗口 题目3:交叉应用,看多少处函数调用了 题目4:利用ctrl+g跳转地址 题目5:局部变量分析 题目6:函数参数分析 题目7:Strings字符串窗口 题目8:代码分析 题目9:进阶分析 总结: 恶意代码分析实战四:IDA Pro神器的使用 这节课主要通过使用IDA Pro来进行静态高级分析 实验: -----
还不会ida*算法?看完这篇或许能理解点。
IDA* 算法分析 IDA* 本质上就是带有估价函数和迭代加深优化的dfs与,A * 相似A *的本质便是带 有估价函数的bfs,估价函数是什么呢?估价函数顾名思义,就是估计由目前状态达 到目标状态的总费用,这个费用可以是距离,可以是路程,估价函数用于对dfs过 程进行优化,由当前状态借助估价函数判断怎么搜索更优,从而去走较优的状态, \[f(n)=g(n)+h(n); \] \(f(n)\)就是我们的估价函数,\(n\)表示当前状态,\(g(n)\)表示由当前状态的费用, \(h(n)\)当前
IDA分析脱壳后丢失导入表的PE
1. 问题 一些程序经过脱壳后(如用OD的dump插件),一些导入表信息丢失了,导致拖入IDA后看不到API的信息(如右图所示,第一个红圈处实际是GetCurrentProcessId),给分析造成极大影响. 2. 分析 从OD来看,41F480处的值就是API GetCurrentProcessId的地址,也就是壳修改后的导入表的位置,该地址在.rsrc Section内,即程序的资源段内,那么我们需要修复其导入表,以指向资源段内的地址 3. 修复导入表 <加密与解密>第3版的13.4.
UVA - 1343 The Rotation Game (BFS/IDA*)
题目链接 紫书例题. 首先附上我第一次bfs+剪枝TLE的版本: #include<bits/stdc++.h> using namespace std; typedef long long ll; +,inf=0x3f3f3f3f; ]= { {,,,,,,}, {,,,,,,}, {,,,,,,}, {,,,,,,}, {,,,,,,}, {,,,,,,}, {,,,,,,}, {,,,,,,}, }; ,,,,,,,}; void rot(int* c,int x) { const in
android so壳入口浅析
本文转自http://www.9hao.info/pages/2014/08/android-soke-ru-kou-q 前言 开年来开始接触一些加固样本,基本都对了so进行了处理,拖入ida一看,要么没有 JNI_OnLoad ,要么 JNI_OnLoad 汇编代码羞涩难懂,让人无法下手. JNI_OnLoad 是真正入口么? 先看看几个文档 1 摘自属性服务一节(<深入理解Android卷1>) 利用gcc的constructor属性,这个属性指明了一个__libc_prenit函数(
【转】pe结构详解
(一)基本概念 PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等, 事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任何扩展名. 那Windows是怎么区分可执行文件和非可执行文件的呢? 我们调用LoadLibrary传递了一个文件名,系统是如何判断这个文件是一个合法的动态库呢? 这就涉及到PE文件结构了. PE文件的结构一般来说如下图所示:从起始位置开始依次是DOS头,NT头,节表以及具体的节.
idapython实现动态函数调用批量注释
部门小伙伴遇到一个样本需要对动态函数调用就行批量注释还原的问题,通过idapython可以大大的减少工作量,其实这一问题也是很多样本分析中最耗时间的一块,下面来看看如何解决这个问题(好吧这才是今年最后一篇技术文章!-_-). 具体情况如下,由于样本注入的代码都是使用的动态函数的获取方式,因此通过ida去看的话都是以下的形式,大大增加了逆向的难度.
PE文件结构详解(一)基本概念
PE(Portable Execute) 文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,PE文件可以是任 何扩展名.那Windows是怎么区分可执行文件和非可执行文件的呢?我们调用LoadLibrary传递了一个文件名,系统是如何判断这个文件是一个合 法的动态库呢?这就涉及到PE文件结构了. PE文件的结构一般来说如下图所示:从起始位置开始依次是DOS头,NT头,节表以及具体的节. DOS头是用来兼容MS-DOS操
android应用程序fps meter[帧数显示]的分析 —— 浅谈root的风险 (3)
上节已经详细说了下注入过程,最后寄生进程在宿主进程中下了个蛋,这下完的蛋有什么作用呢?接下来再具体分析一下. lib0的感染过程分析 对于本例注入的so动态库,首先看一下so的符号: $ readelf -s ./lib0.so Symbol table '.dynsym' contains 136 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000
OD: Peimei & Versioning Analysis
PE 中漫步—“白眉” 指令追踪技术与 Paimei 程序异常发生的位置通常离漏洞函数很远,当溢出发生时,栈帧往往也会遭到破坏,给动态调试制造很大的困难. 指令追踪最大限度地结合了动态分析和静态分析的做点,能够迅速定位漏洞.其工作流程如下: 1 将目标 PE 文件反汇编,按照指令块记录下来(通常用跳转指令来划分) 2 用调试器加载 PE 文件,或者 Attach 到目标进程上,并对程序进行一定操作 3 指令追踪工具会在最初记录的静态指令快中标注当前操作所执行过的指令,用户在阅读反汇编代码的同时也
深入浅出MS06-040
入浅出MS06-040 时至今日,网上已有颇多MS06-040的文章,当中不乏精辟之作.与其相比,本文突显业余,技术上无法超越,徒逞口舌之快.本文适合有一定计算机基础,初步了解溢出攻击原理,略微了解逆向技术的朋友阅读.假设您依据本文的指导亲手完毕了所有的7节实验内容,相信您对栈溢出的掌握和漏洞利用的认识一定会到一个更高的level.实验中涉及的所有细节均可重现,使用的源码都已经过具体的凝视附于附录之中.好了,如今让我们立马去体会把"Impossible"变成"I'm poss
Kindle Windows版本 中文字体修改工具
近来想要用Windows看Kindle电子书,无奈Windows 版本的Kindle不能修改中文字体,非常难看.把Kindle拉到IDA PRO看了一下,发现Kindle Windows版本的中文字体是硬编码的新宋体,于是就写了个小工具来修改中文字体. 所需运行环境: .Net Framework 4 注意事项: 支持现在的最新Kindle版本(1.25.1.52068),其它版本没测试过,理论上都支持,请自行测试. 此程序会覆盖Kindle的一个英文字体 Hiragino Kaku Gothi
RCTF 2017 easyre-153
die查一下发现是upx壳 直接脱掉 ELF文件 跑一下: 没看懂是什么意思 随便输一个数就结束了 ida打开 看一下: pipe是完成两个进程之间通信的函数 1是写,0是读 fork是通过系统调用创建一个“子进程”的函数 fork的返回值,在子进程里面是0,在父进程里是子进程的进程id 所以我们可以很容易看出来 在子进程里面,由于v5==0,所以会输出刚刚我们看到的 OMG!!!! I forgot kid's id 然后将69800876143568214356928753通过pipe传给父
XCTF体验题库 : ReverseMe-120
ida打开看一下: sub_401000函数是能否输出“correct”的关键 点进去看一下: 可以看到将输入的字符串赋予了byte_414E40这个数组的值,看一下这个数组: 应该是base64的解码表,猜测sub_401000函数是用来base64解密的 所以将 you_know_how_to_remove_junk_code 这个字符串按位异或0x25以后再base64加密一遍就好了 flag:XEpQek5LSlJ6TUpSelFKeldASEpTQHpPUEtOekZKQUA=
5m21d缓冲区溢出学习笔记
mysql链接字符串函数 concat(str1,str2) concat_ws(separator,str1,str2....) group_concat(str1,str2....) mysql的concat函数可以连接一个或者多个字符串 concat(username,0x23,password,0x23.....) concat_ws()函数,表示concat with separator,即有分隔符的字符串连接 group_concat()函数,把每一行数据分到一个组里显示出来 htt
一种JNI混淆方案
转载自:http://www.liuling123.com/2016/06/so_method_mix.html 感谢原作者 侵删 默认情况下,使用JNI时与native对应的JNI函数名都是Java包名(点替换为)类名方法名,使用javah生成的头文件函数名就是这样的格式.这样的格式的so库被反汇编时很容易就找到对应的方法. JNIEXPORT jstring JNICALL Java_com_liuling_ndkjnidemo_JniUtils_getStringFromC (JNIEnv
CrackME 2011 # 2 逆向练习解题思路
CrackME 2011 # 2 逆向练习解题思路 做题背景: 从朋友那里得到一道逆向题名字叫package,作为小菜的我当然要看一看啦,这名字辨识度太低我就按照运行的名字改成CrackME 2011 # 2. 题目链接: CrackME 2011 # 2.zip (请到网盘里去找同名文件) 具体步骤: 首先这个程序没壳的 直接放到IDA里看一下,找到了存在加密算法的函数sub_4011D0 判断输入字符串的长度如果不为0,把输入字符串每一位进行x + x * string[x] * stri
驱动保护中的ObjectType_Callback探索
最近学习驱动保护,有点小小心德与大家分享下. 当前环境:VM中的win7 32 保护程序是某游戏的驱动保护. 具体现象是:在用PCHunter工具查看object钩子时发现如下的信息: 疑问点1:在HOOK列显示的是ObjectType_Callback,以前只听说过ObjectType HOOK没听说过这个呀,这个是什么呢? 疑问点2:Object类型列显示的是“Process” 查阅了<windows内核原理与实现>的55页WRK中的全局类型对象变量,发现不是系统创建的类型,难道这个对象类
IOT安全
相关资源 IOT 漏洞 top 10 https://xz.aliyun.com/t/2278 https://www.owasp.org/images/8/8e/Infographic-v1.jpg https://payatu.com/iot-security-part-3-101-iot-top-ten-vulnerabilities/ 总结性的资源 https://github.com/nebgnahz/awesome-iot-hacks https://github.com/V33RU
一步一步pwn路由器之uClibc中malloc&&free分析
前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 栈溢出告一段落.本文介绍下 uClibc 中的 malloc 和 free 实现.为堆溢出的利用准备基础.uClibc 是 glibc 的一个精简版,主要用于嵌入式设备,比如路由器就基本使用的是 uClibc, 简单自然效率高.所以他和一般的x86的堆分配机制会有些不一样. 正文 uClibc 的 malloc 有三种实现,分别为: 其中 malloc-stand
CVE-2012-0158基于exp分析
CVE-2012-0158这个洞我之前分析过,漏洞战争这本书里也写过,但是都是用poc分析的,我这次找了一个弹计算器的exp来分析,感觉用poc和用exp还是不一样的,从exp分析要比从poc分析更复杂一些,或者说是要使用一些独特的小技巧.顺带补齐漏洞利用的内容,上次没有写这个,看了一下漏洞分析这本书也没有写怎么利用的这个漏洞. 0x0.分析漏洞 0x2.漏洞本质成因 0x3.漏洞利用 0x0.分析漏洞 首先是用windbg挂载word2003进程,F5继续执行之后加载exp文件,会发现中断在了
热门专题
[SCOI2005]繁忙的都市
python 坐标轴上下分布的图表
python中三大框架
npm源切换自己的源
compare 64 30天
setup vpn插件
vue 判断数组一个数组的长度是多少
基于jdk1.6把xml解析为json
cocos2dx的叠加模式
Matlotlib源文件安装
springboot集成dubbo
通过图片来算变换角度
php 过滤 emoji
sql不支持用该后端版本设计数据库
uniapp tabBar 中间放大
x-admin管理系统
Scrum团队模型中三种istio访问可视化时不能提供的
linux使用非root开机自启
运行crt一个崩溃的错误怎么解决
python list怎样根据字段转为字典