
逆向分析
久许
朋友拍了拍我,说我可不是什么幺蛾子
展开
-
栈溢出之 pwnable.kr login
Can you get authentication from this server?Download : http://pwnable.kr/bin/loginRunning at : nc pwnable.kr 9003反编译main函数通过main函数的第21行我们知道,解码之后的字符串也被存放在了input指向的内存单元中。同时我们知道,input在bss段。反编译Base64Decode函数反编译auth函数通过查看auth函数,我们发现很难通过.原创 2020-08-28 10:55:17 · 333 阅读 · 0 评论 -
stack canary之pwnbale.kr MD5 calculator
We made a simple MD5 calculator as a network service.Find a bug and exploit it to get a shell.Download : http://pwnable.kr/bin/hashhint : this service shares the same machine with pwnable.kr web serviceRunning at : nc pwnable.kr 9002程序的执行:ma.原创 2020-08-26 16:48:49 · 326 阅读 · 0 评论 -
brain_fuck
bss段和got.plt段之间的距离为:A0A0-A030=0x70=112。main函数int __cdecl main(int argc, const char **argv, const char **envp){ size_t i; // [esp+28h] [ebp-40Ch] char s[1024]; // [esp+2Ch] [ebp-408h] unsigned int v6; // [esp+42Ch] [ebp-8h] v6 = __read...原创 2020-08-23 15:53:45 · 599 阅读 · 0 评论 -
ROP攻击:Challenge 0x14: Horcruxes
Voldemort concealed his splitted soul inside 7 horcruxes.Find all horcruxes, and ROP it!author: jiwon choissh horcruxes@pwnable.kr -p2222 (pw:guest)登录进去之后发现,只有二进制可执行文件,没有源文件。所以为了加快分析,需要借助ida的反编译功能。反编译之后,可以看到各个函数的结构如下:int A(){ return prin.原创 2020-08-14 21:23:07 · 398 阅读 · 0 评论 -
在IDA中安装mips插件和脚本以及IDA的动态调试
需要安装python2.7python2.7是ida插件得以运行的必要条件。如果是使用wine安装的ida,那么使用wine安装python2.7,可以点击参考。下载mips插件和脚本git clone https://github.com/devttys0/ida.git将下载下来的ida/plugins目录下的所有.py格式的文件拷贝到IDA根目录下的plugins目录。将ida...原创 2019-11-10 08:59:49 · 4311 阅读 · 0 评论 -
[input]
题目Mom? how can I pass my input to a computer program?ssh input2@pwnable.kr -p2222 (pw:guest)c语言代码/* * d.c * * Created on: 2019年10月3日 * Author: adog */#include <stdio.h>#include ...原创 2019-10-03 16:25:49 · 242 阅读 · 0 评论 -
[passcode]
Mommy told me to make a passcode based login system.My initial C code was compiled without any error!Well, there was some compiler warning, but who cares about that?ssh passcode@pwnable.kr -p2222 (...原创 2019-10-01 20:54:28 · 622 阅读 · 0 评论 -
调用约定
cdecl调用约定定义cdecl调用约定规定函数的参数从右到左依次入栈。非常适用于那些参数数量可变的函数(如printf)形式一当被调用的函数的参数的个数是可变的时候,这时调用者知道需要传递给被调用者的参数的个数,而被调用者不知道传递给他的参数的个数。所以调用者负责清除栈中的参数。形式二下面的例子同样遵照cdecl调用约定,但是,每次调用demo_cdecl后,调用方不需要删除栈中的...原创 2019-09-30 22:56:35 · 375 阅读 · 0 评论 -
在ubuntu中安装upx
下载uclhttp://files.cnblogs.com/files/oloroso/ucl-1.03.tar.gz解压,编译安装ucladog@E531:upx$ tar -zxvf ucl-1.03.tar.gz adog@E531:upx$ cd ucl-1.03/adog@E531:ucl-1.03$ pwdadog@E531:ucl-1.03$ ./configure --...转载 2019-09-29 10:16:42 · 5383 阅读 · 0 评论 -
pwnable.kr collision
代码#include <stdio.h>#include <string.h>unsigned long hashcode = 0x21DD09EC;unsigned long check_password(const char* p){ int* ip = (int*)p; int i; int res=0; ...原创 2019-09-28 13:18:08 · 177 阅读 · 0 评论 -
逆向分析--治愈中二
一、使用ida进行代码的分析要注释的是,如果时32位的程序,需要使用32位的IDA进行分析,如果是64位的程序,需要使用64位的IDA进行分析。如果直接进行汇编代码分析比较复杂,这里可以通过快捷键F5,把使用IDA提供的功能把汇编代码转换为C语言代码。主函数sub_401000函数对以2结尾的数字进行检查,一旦发现,就跳出程序,并返回1。这里的a1就是我们手动输入的值。也就是说,当发...原创 2019-09-18 14:57:33 · 225 阅读 · 0 评论