97, 1/5 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   turttle2s
   angr Áú¹®

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_Reversing&no=127 [º¹»ç]


angr¸¦ ÀÌ¿ëÇØ ÇÊ¿äÇÑ ÀԷ°ªÀ» ã´Â ½ºÅ©¸³Æ®¸¦ Â¥°íÀÖ½À´Ï´Ù.

Ÿ°Ù ¼Ò½º´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
==================================================================
// gcc -o t1 t1.c -m32 -fno-stack-protector -mpreferred-stack-boundary=2 -no-pie -fno-pic
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
  int canary;
  char buff[0x50];

  scanf("%d", &canary);
  if(canary == 0xdeadbeef){
    read(0, buff, 0x100);
  }

  return 0;
}
==================================================================

canary¿¡ 0xdeadbeef¸¦ ÀÔ·ÂÇÏ°í read()¿¡¼­ 0x100¸¸Å­ ÀÔ·Â¹Þ¾Æ ½ºÅà ¹öÆÛ ¿À¹öÇ÷ο찡 ¹ß»ýÇÏ´Â ½Ã³ª¸®¿À¸¦ ±â´ëÇÏ°í ¾Æ·¡ ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇß½À´Ï´Ù.




==================================================================
import angr, claripy

proj = angr.Project("./t1", load_options={"auto_load_libs":False})
input1 = [claripy.BVS("input1_%d" % i, 8*1) for i in range(0,4,1)]   # canary input
input2 = [claripy.BVS("input2_%d" % i, 8*1) for i in range(0,0x100,1)]    # buff input
input_data = claripy.Concat(*input1 + [claripy.BVV(b'\n')] + [*input2])

def debugging(state):
    print("[*] before mem_write")
    print("[*] ip: ", hex(state.ip.args[0]))
    print("[*] input: ", state.posix.dumps(0))
    print("[*] callstack")
    print(state.callstack)

st = proj.factory.call_state(0x8049172, stdin=input_data)
st.inspect.b('mem_write', when=angr.BP_BEFORE, action=debugging)
simgr = proj.factory.simulation_manager(st)

while len(simgr.unconstrained) == 0:
    simgr.step()

print('Done')

ust = simgr.unconstrained[0]
print('input: ', ust.solver.eval(input_data, cast_to=bytes))
==================================================================

À§ ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϸé Àß µ¹´Ù°¡ ƯÁ¤ ÁöÁ¡¿¡¼­ ¸ØÃç¹ö¸³´Ï´Ù.
¸ØÃá ´ç½Ã¿¡ µð¹ö±ë ÇÔ¼ö¿¡¼­ Ãâ·ÂÇÑ ³»¿ëÀº ¾Æ·¡¿Í °°½À´Ï´Ù.

==================================================================
[*] before mem_write
[*] ip:  0x8100008
[*] input:  b':000\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
[*] callstack
Backtrace:
Frame 0: 0x8049172 => 0x8049050, sp = 0x7ffeff98
Frame 1: 0x0 => 0x0, sp = 0xffffffff
==================================================================
Á¦°¡ ºÃÀ» ¶§, ¹®Á¦Á¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.

1. ù 4¹ÙÀÌÆ®¸¦ ¹Ù²Ù¸é¼­ °è¼Ó ½ÃµµÇÏ´Â°É ±â´ëÇßÁö¸¸, À§ ÀÔ·ÂÀ» ¸¶Áö¸·À¸·Î ´õÀÌ»ó mem_write À̺¥Æ®°¡ ¹ß»ýÇÏÁö ¾ÊÀ½.
2. ip°¡ ºñÁ¤»óÀûÀÎ °ªÀε¥ unconstrained »óÅ·ΠµÇÁö¾ÊÀ½.
3. ÀԷ°ªÀ» ¸¸µé±â À§ÇØ claripy.ConatÀ» »ç¿ëÇߴµ¥ ¿©±â¼­ À߸ø »ç¿ëÇßÀ» °¡´É¼ºÀÌ ÀÖÀ½.


¾î¶»°Ô ÇØ°áÇؾßÇÒÁö ¸ð¸£°Ú³×¿ä..

  Hit : 1759     Date : 2021/04/24 01:41



    
turttle2s ÀÏ´Ü ip°¡ ¿Ö Àú·¸°Ô µÇ´ÂÁö ¸ð¸£°ÚÁö¸¸ ½Éº¼¸¯ÇÑ°Ô ¾Æ´Ï¶ó¸é unconstrained ¾È¶ß´Â°Ô Á¤»óÀ̱ä Çϳ׿ä 2021/04/24  
turttle2s Ÿ°Ù ÄÚµå ÀÚü°¡ ¹®Á¦°¡ Àֳ׿ä. int ÇüÀ̶ó deadbeef ÀÔ·ÂÀ» ÇÏ´Â °÷¿¡¼­ ¹®Á¦°¡ »ý°Ü Á¦´ë·ÎµÈ ÀÔ·ÂÀ» ³Ö¾îµµ ºñ±³¸¦ ¸øÇϳ׿ä 2021/04/24  
97   ¾Æ½ºÅ° ¹üÀ§ ¹Û ÆäÀ̷εå Àü¼Û ½Ã, 0xc2°¡ ºÙ´Â Çö»ó[7]     turttle2s
05/11 1692
96   ÄݽºÅÿ¡ ¾Æ¹«°Íµµ ¾øÀ» °æ¿ì¿¡´Â ¾î¶»°Ô ÇؾßÇϳª¿ä..[2]     mij9929
01/14 1701
95   angr¿¡¼­ ½ºÅà ÁÖ¼Ò ±¸Çϱâ[3]     turttle2s
05/24 1755
  angr Áú¹®[2]     turttle2s
04/24 1758
93   quickbms ÀÇ ¿ø¸®°¡ ±Ã±ÝÇÕ´Ï´Ù.     sa0814
05/10 1908
92   º¯¼ö ¼±¾ð½Ã ½ºÅÿ¡¼­ÀÇ À§Ä¡[5]     turttle2s
11/13 2115
91   ¸®¹ö½Ì Çٽɿø¸®¸¦ °øºÎÇÏ´Ù°¡ ¸·Çû½À´Ï´Ù.     aaasss445
06/12 2125
90   Äڵ忣Áø Basic 02¿¡¼­     healer
04/08 2164
89   ida¿¡¼­ ºÐ¼®ÇÒ ¶§,,,[3]     vngkv123
11/30 2322
88   dumpcode Çì´õÆÄÀÏ ¸»Àä..[1]     ys200209
07/20 2459
87   ¸®¹ö½Ì-µð½º¾î¼Àºí¸®-µð¹ö°Å¿¡ ¹®ÀÇÁ»..     leonardo6
10/13 2532
86   ¸®´ª½º PC¿¡¼­ ¸ÞÀκ¸µå¸¦ ¹Ù²Ù¸é ¸®´ª½ºµµ ´Ù½Ã ±ò¾Æ¾ß Çϳª¿ä?     na2r8
03/13 2587
85   ´º½º¿¡¼­ º»°Çµ¥ °ü·Ã ±â¼úÀÌ ¾ø¾î¼­ ÀÌ·¸°Ô ÇÑ°ÇÁö..[2]     intmain1202
05/21 2591
84   Ã¥ ȤÀº ¹®¼­ Ãßõ Á» ÇØÁÖ¼¼¿ä~     likewinds
01/11 2673
83   ida string window °ü·Ã ¹®Á¦[2]     heartbits
08/20 2689
82   ·¹Áö½ºÅÍ¿¡ ´ëÇؼ­....[3]     hackedby
10/01 2695
81   opcode ¾î¶»°Ô Àоî¿À³ª¿©..?     intmain1202
09/03 2722
80   µð¹ö°Å¸¦ ÀÌ¿ëÇÏ¿© ¸®¹ö½Ì Áß¿¡ ½ºÅðú ÄÚµå ¿µ¿ªÀÌ ÀüºÎ FFÇ¥½ÃµÇ´Â¹®Á¦..[1]     Å×Ã÷
02/02 2723
79   IDA remote linux debugging ÇÏ´Â Áß ¿¡·¯°¡ ¶ß´Âµ¥¿ä..     dudgb2380
08/17 2734
78   ¸®¹ö½Ì ÀÔ¹®ÀÚÀÔ´Ï´Ù     shdac
10/12 2753
1 [2][3][4][5]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org