Java/Android手工去字符串混淆

去除java字符串混淆的工具一直不少,这里推荐几个比较好用的:

Simplify(https://github.com/CalebFenton/simplify

这个看介绍是挺不错的,但实际使用中,很是鸡肋,执行效率低的恐怖,而且很大可能完全没作用

Dex-orcale(https://bbs.pediy.com/thread-253522.htm

没给原始GitHub链接的原因是,这个项目已经不在维护了,可能无法直接拿来用,附上大佬魔改版,可以直接拿来用

Dex2Jar附带工具(https://github.com/pxb1988/dex2jar/wiki/[……]

查看文章

Java/android大型工程分析工具

能用于反编译apk/class的反编译器有很多,实际工作中几乎体验过所有的反编译器后,发现大型项目的分析,还是用ide比较方便。

众所周知,IntelliJ idea有一个很棒的反编译器,但我曾经搜索过,并没有独立版,直到今天我才知道这个东西是开源的:https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine

这个东西是可以命令行工作的,但我估计也没人愿意下载整个idea的源码去编译,不过没关系,不需要我们自己去编译它,有个叫bytecode viewer的项目[……]

查看文章

pycharm开发idapython

试了N多文本编辑器,智能提示都很不理想,包括用了Visual Studio这种宇宙第一ide也不行(还碰到了一堆bug),下载了一个pycharm community版本,导入script之后,再把ida安装目录下的python整个导入并设置为source root就可以了,整体体验十分好,强力推荐~

“虚拟大师”,GPLv3你都敢抄

这篇文档只是个无聊的存档, 预防打脸,先写一行 ,我目前无法确定anbox的这个开源虚拟机是否给国内 http://www.vmos.com 这家公司授权可以使用源代码。

嘛,事情的经过呢,就是张总发了个A岛看到的图片,叫安卓上首款安卓虚拟机,大家都觉得又是什么无聊的Virtual App技术+Xposed,抱着看看玩的心态,我下载了一个,结果扔到虚拟机里面无法执行,应用我懒得反编译,就直接抓了网络请求:http://files.vmos.com/romVersion/2019041822533879694.zip

下载下来呢,200多M,还真的是个安卓的镜像文件!

你牛逼.[……]

查看文章

ELF Dump文件修复(一) ELF文件结构

写这个文章呢,无非就一个理由,巩固基础,不过我这种逆向思维的性格,大家大概也知道这系列文章的走向。

关于ELF的一些结构呢,我就不在这里浪费篇幅了,随便找几篇文章都比我讲得好,这里我只提一些关联性的总结。

在program header table里面

e_phoff

e_phnum 

e_phentsize

表示program headers的偏移数量和大小,用来定位program header

区段表包含了节区的所有信息,需要链接的情况下必须有这个表

而接下来我们应该关心的就是区段表中的Load段了

LOAD表[……]

查看文章

新年快乐

最近懒癌又犯了~
不过还是祝大家新年快乐~

更新预告:
U3D最新版 Unique ID算法逆向
魔改Fiddler的Inspector

大概不会咕:
Ollvm系列

看雪CTF TSRC 2018 第二题 半加器

又是一个做出了答案才发现方向错了的题。

看汇编是不可能看汇编的,这辈子都不可能看汇编。
对着main函数日了半天都没看出端倪,怎么看都是算了个码什么都没干就退出了。
后来我发现Dst是全局的,我一路xref来到了一个好地方。
好贱啊,原来是在析构函数中处理的,传进去一个不疼不痒的“非法参数”字符串作为key位异或之后,跟我们的输入做对比。
再把第8位的#改成A就可以了(主函数里面的逻辑)
感言:一个好的思路真的很重要,一脑子骚操作结果误入歧途,就应该直接对我们的输入全程跟踪,直接一个硬件断点跟过去就完了。
这题我怀疑用ponce都能一键跑出答案,不过作者很[……]

查看文章

看雪CTF TSRC 2018 第一题 初世纪

心血来潮去玩CTF,本弱鸡就算菜也要做做自我修养不是~

公布答案的时候会同步wp过来,如果做不出来就忘了这些玩意吧……

毕竟我不会PWN和硬件这类玩意。

 

拿到了exe我第一时间就拖进了ida,之后字符串大法企图找到成功失败之类的字样,然而我落空了。
仔细思考一下mfc程序的工作原理之后,并观察了一下ida的指示条。

天蓝色看着好舒服,大多数函数都被识别了,于是我快速的转到了函数列表中,找到了第一个sub

在sendMessage那里随便打了一个断点,发现提示错误,对应的,我找了下找个函数的交叉引用,来到了一个喜闻乐见的地方[……]

查看文章

x64dbg ctrl+g不会智能提示的坑

画眉大佬给我们留了个作业,让我们给x64dbg写一个类似OD IDAFicator 的插件。

我想出了一个思路是通过智能跳转实现,结果我打开了2018.5月的x64dbg,发现直接就有智能提示!

我心想着,这还写个毛啊,作业也不用做了,就在群里吐槽了一下,结果画眉说他的8月版本死活不提示!

我嘲讽了一番是他电脑问题之后,结果下了个新版,我的也不提示了!

心中万头草泥马飞奔而过,这尼玛更新还有负更新的?

我下载了两份源码,并粗略的进行了对比。

GotoDialog.cpp
这个文件就是整个跳转对话框的逻辑,

AutoComplete就是具体功能[……]

查看文章

IDA进阶使用技巧

解决IDA F5时提示SP问题

Ida针对栈指针变化的分析时,很多时候会无法确定一个call到底是哪种调用约定,从而导致分析失败无法F5。

打开Options->General

IDA Options alysis Address representation use s egne Basic block Include S e 4" ent addresses Borders betEeen data/ code boundari es e line aph) n-graph) Gr aph ssembly line aph) f opcode bytes Glon—graph) Igstruction indentation Glon—graph) Cæ.ents indentation Glon—graph) Right margin Glon—graph) Ex segooo:0FE4 s limit oxloooo limit ox7FFE1000

. text . . text : . text : . text . . text : . text : . text . . text : . text : . text . . text : . text : . text : . text : . text : . text : . text : . text : . text : . text : . text . . text : . text : . text . . text : . text : . text : . text : . text : . text : . text : • 00401100 00401107 ØØ4011ØA 02 •ØØ4Ø11ØD 00401110 00401113 •00401116 00401119 •ØØ4Ø111F 00401124 02 00401127 0040112B 00401131 00401136 0040113B 00401140 00401142 00401147 •ØØ4Ø114E 00401153 00401158 •ØØ4Ø115D 00401162 1165 . text : 5 0040116 ØØ40116A 0040116C ØØ40116D ØØØ ØØ40116D 028 028 02 02 02 02 X 02 02 02 03 03 03 03 01 010 008 mov lump to operand Jump in a window Jump in a new hex window List cross references from... Edit function... Change stack pointer... Hide Graph view Proximity browser Undefine Synchronize with Run to cursor Add write trace Add zead/write trace Add execution trace Add breakpoint Copy address to command line Xrefs graph to„. Xrefs graph from... Eont... mov pop retn [ebP+var [ebp+var_4] 4] Enter 4] Alt+ Enter C] Ctrl+J Alto Alt+K Ctrl+Numpad+- eax Numpad+- ; "fuck" _krn1n_fnMsgBox allKrnILibCmd ; CODE XREF: sub_4010DB+50tj esp, ebp ebp

手动平衡变成负数堆栈即可。

显示OpCode的办法

设置个长度就可以了

看不懂的指令自动提示

快速选择数据并复制

不得不说ida自带的窗口想复制一些东西出去太难用了,但作者还是贴心的提供了连选功能。

按下Alt+L

注意光标的变化

选区之后按下Shift+E(Export data)

选择一个你要的风格就可以了。

修改IDA的虚拟基地址

当你调试的同时享受ida的f5功能[……]

查看文章